PR#3 PREFIX /A2OSX.SRC NEW INC 1 AUTO 6 .LIST OFF .OP 65C02 .OR $2000 .TF /A2OSX.BOOT/BIN/LSDEV *-------------------------------------- .INB INC/MACROS.I .INB INC/A2OSX.I .INB INC/LIBSTR.I *-------------------------------------- ZPPTR1 .EQ ZPBIN ZPPTR2 .EQ ZPBIN+2 ZPPTR3 .EQ ZPBIN+4 *-------------------------------------- * 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.LIBSTR .DA LIBSTR L.MSG0 .DA MSG0 L.MSG1 .DA MSG1 .DA 0 *-------------------------------------- CS.INIT >LDYA L.LIBSTR >SYSCALL SYS.LoadLibYA bcc .1 rts .1 sta hLIBSTR >LDYAI DevMgr.Table >STYA ZPPTR1 stz DEV.ID >PUSHW L.MSG0 >LIBCALL hLIBSTR,LIBSTR.PRINTF .2 lda (ZPPTR1) cmp #$D8 bne .8 ldy #S.DEV.JMP+1 >PUSHB (ZPPTR1),y dey >PUSHB (ZPPTR1),y lda ZPPTR1 clc adc #S.DEV.NAME tay lda ZPPTR1+1 adc #0 >PUSHYA ldy #S.DEV.F >PUSHB (ZPPTR1),y ldy #S.DEV.ID >PUSHB (ZPPTR1),y >PUSHW L.MSG1 >LIBCALL hLIBSTR,LIBSTR.PRINTF lda ZPPTR1 clc adc #S.DEV sta ZPPTR1 bcc .3 inc ZPPTR1+1 .3 inc DEV.ID lda DEV.ID cmp #K.DEV.MAX bne .2 .8 lda #0 tell TSKMGR that all done ok, but .9 sec we do not want to stay in memory rts *-------------------------------------- CS.RUN CS.EVENT clc rts *-------------------------------------- CS.QUIT lda hLIBSTR >SYSCALL SYS.UnloadLibA clc rts *-------------------------------------- CS.END LIBSTR >PSTRING "libstr.o" MSG0 >CSTRING "ID Flags Name Address\n" MSG1 >CSTRING "%03d %b %4S $%H\n" hLIBSTR .BS 1 DEV.ID .BS 1 MAN SAVE BIN/LSDEV.S ASM