home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Syzygy Magazine 8
/
Syzygy_Magazine_8_2002___pl_beta_Side_B.atr
/
ossio.arc
/
OSSIO.FAS
next >
Wrap
Text File
|
2001-06-30
|
4KB
|
1 lines
lst bad¢¢* symbole i zmienne SpartaDOS X¢symbol smb 'symbol'¢install smb 'install'¢s_addiz smb 's_addiz'¢printf smb 'printf'¢u_gepath smb 'u_gepath'¢u_getpar smb 'u_getpar'¢sioidx equ $070f¢siotbl equ $0718¢device equ $0761¢syscall equ $0787¢jext_on equ $07f1¢jext_off equ $07f4¢¢* zmienne i rejestry OS¢critic equ $42¢dunit equ $0301¢dstats equ $0303¢pdvmsk equ $0247¢pdvrs equ $0248¢pdvreg equ $d1ff¢pdior equ $d805¢jsioint equ $e459¢¢tmp equ $80¢¢* blok instalayjny¢ blk sparta $0600¢¢ lda symbol * sprawdz,¢ ldx symbol+1 * czy procedura¢ bne setprv * zostala juz¢ * zainstalowana¢instld jsr printf¢ dta c'Already installed.'¢ dta b($9b,0)¢ rts¢¢look ldy #$0a * sprawdzenie¢check dey * polega na¢ cpy #$01 * wyszukaniu¢ beq instld * w pamieci¢ lda (tmp),y * symbolu¢ cmp symbol,y * o nazwie OSSIO¢ beq check * jesli zostanie¢ ldy #$01 * znaleziony,¢ lda (tmp),y * to skok do¢ tax * INSTLD¢ dey¢ lda (tmp),y¢setprv sta tmp¢ stx tmp+1¢ ora tmp+1¢ bne look¢¢ jsr u_getpar * pobierz naped¢ jsr u_gepath * z linii komend¢ lda device¢ cmp #$10 * urzadzenie ok?¢ bcc inst * instaluj¢ jsr printf¢ dta b($9b)¢ dta c'Wrong device.',b($9b,0)¢ rts¢¢inst sta devno+1¢ ldy #$07 * znajdz 1szy¢ffree lda siotbl,y * wolny wskaznik¢ beq iniadd * w tablicy¢ dey * wektorow SIO¢ dey¢ bpl ffree¢ jsr printf * tablica pelna¢ dta c'SIO table full.',b($9b,0)¢ rts¢¢iniadd sty tmp * dodaj do¢ lda vrsini * inicjacji¢ ldx vrsini+1 * przelaczenie¢ jsr s_addiz * na turbo¢ bcc enter¢¢ jsr printf * kolejka pelna¢ dta b($9b)¢ dta c'Cannot install.',b($9b,0)¢ rts¢¢enter ldy tmp * wpisz wektor¢ lda vossio * nowej¢ sta siotbl-1,y * procedury¢ lda vossio+1¢ sta siotbl,y¢ * program jest¢ dec install * nakladka¢ dta b($4c) * JMP RSTINI¢vrsini dta v(rstini)¢vossio dta v(ossio)¢¢* blok rezydentny¢ blk reloc main¢¢rstini php * inicjacja¢ sei * po resecie¢ ldx #$01 * ustawienie¢ lda virqmn,x * wektora¢ sta $0216,x * procedury¢ dex * rozpoznania¢ bpl *-7 * zrodla IRQ¢ plp¢ rts¢¢virqmn dta v(*+2)¢ PHA * procedura¢ LDA #$20 * rozpoznania¢ BIT $D20E * zrodla¢ BNE s0 * przerwania¢ EOR #$FF * zywcem wzieta¢ STA $D20E * z pliku TURBO¢ LDA $10 * stacji TOMS 720¢ STA $D20E¢ JMP ($020A)¢¢s0 LSR @¢ BIT $D20E¢ BNE s1¢ LSR @¢ BIT $D303¢ BNE s2¢ LDA $023A¢ CMP #$3F¢ BCS s2¢ LDA $023D¢ ORA #$80¢ STA $023D¢ BMI s2¢¢s1 LSR @¢ BIT $10¢ BEQ s2¢ BIT $D20E¢ BNE s2¢ LDA $3B¢ BEQ s2¢ LDA $023D¢ BPL s2¢ LDA #$06¢ STA $D204¢¢s2 PLA¢ JMP $C030¢¢ossio ldx dunit * wywolanie SIO¢ lda sioidx-1,x * podmiana¢devno cmp #$00 * napedu¢ bne secrts * logicznego na¢ * fizyczny¢ sta dunit¢ txa¢ pha¢ lda syscall * przelaczenie¢ jsr jext_on * pamieci¢ jsr jsioint * skok do SIO¢ jsr jext_off * przywrocenie¢ pla * pamieci¢ sta dunit * i napedu log.¢ tya¢ clc * operacja¢ rts * wykonana¢¢secrts sec * wywolanie nie¢ rts * dotyczy tego¢ * urzadzenia¢ blk upadte addresses¢ blk update symbols¢ blk update new ossio 'ossio'¢ end¢