PR#3 PREFIX /A2OSX.BUILD NEW INC 1 AUTO 6 .LIST OFF .OP 65C02 .OR $2000 .TF /A2OSX.BUILD/BIN/LSDEV *-------------------------------------- .INB /A2OSX.BUILD/INC/MACROS.I .INB /A2OSX.BUILD/INC/PRODOS.I .INB /A2OSX.BUILD/INC/A2OSX.I .INB /A2OSX.BUILD/INC/KERNEL.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 CS .DA DS.END-DS.START DS .DA #16 SS .DA #4 ZP .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.C .DA MSG2.C L.MSG2.B .DA MSG2.B .DA 0 *-------------------------------------- CS.INIT clc rts *-------------------------------------- CS.RUN >LDYA L.MSG0 >SYSCALL PrintF.YA >LDA.G DEV.ID .1 >SYSCALL GetDevByID.A bcs .7 >STYA ZPPTR1 jsr DumpHeader bcs .9 >LDA.G DEV.ID >SYSCALL GetDevByID.A >STYA pDev ldx #DEVMGR.STATUS jsr pDevJmp bcs .6 >STYA ZPPTR2 jsr DumpStatus bcs .9 .6 lda #13 >SYSCALL PutChar.A lda #10 >SYSCALL PutChar.A .7 >LDA.G DEV.ID inc sta (pData),y cmp #K.DEV.MAX bne .1 .8 lda #0 tell TSKMGR that all done ok, but .9 sec we do not want to stay in memory rts *-------------------------------------- DumpHeader ldy #S.DEV.DRV.JMP+1 >PUSHB (ZPPTR1),y dey >PUSHB (ZPPTR1),y lda #S.DEV.NAME clc adc ZPPTR1 tay lda /S.DEV.NAME adc ZPPTR1+1 >PUSHYA ldy #S.DEV.F >PUSHB (ZPPTR1),y ldy #S.DEV.S lda (ZPPTR1),y >STA.G DEV.S ldy #DEV.SFLAGS+7 ldx #7 .1 lsr pha lda #'-' bcc .2 lda MSG.SFLAGS,x .2 sta (pData),y pla dey dex bpl .1 >PUSHEA.G DEV.SFLAGS >LDA.G DEV.ID >PUSHA >LDYA L.MSG1 >SYSCALL PrintF.YA rts *-------------------------------------- DumpStatus >LDA.G DEV.S bpl .1 ldy #S.DEVSTAT.SIZE lda (ZPPTR2),y >STA.G DEV.SIZE ldy #S.DEVSTAT.SIZE+1 lda (ZPPTR2),y >STA.G DEV.SIZE+1 ldy #S.DEVSTAT.SIZE+2 lda (ZPPTR2),y >STA.G DEV.SIZE+2 >PUSHEA.G DEV.SIZE .1 ldy #S.DEVSTAT.VERSION+1 >PUSHB (ZPPTR2),y dey >PUSHB (ZPPTR2),y lda ZPPTR2 clc adc #S.DEVSTAT.IDS tay lda ZPPTR2+1 adc #0 >PUSHYA ldy #S.DEVSTAT.ST >PUSHB (ZPPTR2),y dey >PUSHB (ZPPTR2),y >LDA.G DEV.S bpl .2 >LDYA L.MSG2.B bra .3 .2 >LDYA L.MSG2.C .3 >SYSCALL PrintF.YA rts *-------------------------------------- CS.EVENT sec rts *-------------------------------------- CS.QUIT clc rts *-------------------------------------- CS.END MSG0 >CSTR "ID Status Flags Name Addr. Typ/Sub IDString Version Size (BLK)\r\n" MSG1 >CSTR "%03d %s %b %4s $%H " MSG2.B >CSTR "$%h/$%h %16S %03d.%03d %10u" MSG2.C >CSTR "$%h/$%h %16S %03d.%03d n/a" MSG.SFLAGS .AS "BWRLNEIO" *-------------------------------------- .DUMMY .OR 0 DS.START DEV.ID .BS 1 DEV.S .BS 1 DEV.SIZE .BS 4 DEV.SFLAGS .BS 9 DS.END .ED *-------------------------------------- MAN SAVE /A2OSX.SRC/BIN/LSDEV.S ASM