A2osX/BASIC.15/BASIC.S.LDR.txt

311 lines
4.8 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

NEW
AUTO 3,1
*--------------------------------------
LDR.START jmp LDR.START1
LDR.SIG .DA $EEEE
.DA #MLI.MAXPATH+1
LDR.STARTUP.LEN .DA #7
LDR.STARTUP .AS "STARTUP"
.BS MLI.MAXPATH-7
LDR.START1 lda #$9A
sta Ptr2+1
lda #$24
sta Ptr1+1
lda #$00
sta Ptr1
sta Ptr2
ldx #$23
tay
jsr LDR.MoveXpages
ldx #$01
lda #$BE
sta Ptr2+1
jsr LDR.MoveXpages
lda #$15
jsr MON.COUT
jsr MON.SETNORM
jsr MON.INIT
jsr MON.MON
ldx #$17
lda #$00
L2076 sta MLI.MEMTABL,x
dex
bne L2076
lda #$CF
sta MLI.MEMTABL
lda #$3F
sta MLI.MEMTABL+19
lda #$FF
sta MLI.MEMTABL+20
sta MLI.MEMTABL+21
sta MLI.MEMTABL+22
lda #$C3
sta MLI.MEMTABL+23
lda AS.COLDBOOT
cmp #$4C
bne L20B1
lda MLI.MACHID
and #$20
beq L20B1
ldx #$03
L20A6 lda LDR.CSWVECT,x
sta ZP.CSW,x
dex
bpl L20A6
jmp AS.COLDBOOT
L20B1 ldx #$27
L20B3 lda LDR.UNABLE,x
sta $628,x
dex
bpl L20B3
sta MON.POWERUPBYTE
sta MON.POWERUP+1
L20C2 bmi L20C2
LDR.MoveXpages dey
lda (Ptr1),y
sta (Ptr2),y
tya
bne LDR.MoveXpages
inc Ptr1+1
inc Ptr2+1
dex
bne LDR.MoveXpages
L20D3 rts
LDR.CSW cmp #$DD
bne L20D3
lda GP.OUTVECT0
sta ZP.CSW
lda GP.OUTVECT0+1
sta ZP.CSW+1
lda MLI.DEVNUM
sta LDR.ONLINE.P.DEVNUM
ldx #$01
asl
bcc L20EE
inx
L20EE stx GP.VDEFDRV
asl
rol
rol
rol
and #$07
sta GP.VDEFSLT
ldx #$C1
ldy #$02
lda MLI.SLTBYT
lsr
L2102 lsr
pha
bcc L2115
lda #$00
sta GP.OUTVECT0,y
sta GP.INVECT0,y
txa
sta GP.OUTVECT0+1,y
sta GP.INVECT0+1,y
L2115 iny
iny
inx
pla
bne L2102
lda #$96
sta AS.HIMEM+1
sta AS.STRINGSTART+1
sta GP.RSHIMEM
lda MLI.PFIXPTR
beq L214E
jsr MLI
.DA #MLI.C.GETPREFIX
.DA LDR.GETSETPFX2.P
bne L218B
ldx MLI.PATHBUF
lda #$2F
L2136 cmp MLI.PATHBUF,x
bne L213E
inc LDR.PFXLEN
L213E dex
bne L2136
lda LDR.PFXLEN
cmp #$03
bcs L216F
jsr MLI
.DA #MLI.C.SETPREFIX
.DA LDR.GETSETPFX1.P
L214E jsr MLI
.DA #MLI.C.ONLINE
.DA LDR.ONLINE.P
bne L218B
lda MLI.PATHBUF+1
and #$0F
beq L218B
tax
inx
stx MLI.PATHBUF
lda #$2F
sta MLI.PATHBUF+1
jsr MLI
.DA #MLI.C.SETPREFIX
.DA LDR.GETSETPFX2.P
bne L218B
L216F jsr MLI
.DA #MLI.C.GETFILEINFO
.DA LDR.GFINFO.P
bne L218B
ldx LDR.STARTUP.LEN
stx LDR.STARTUP.LEN1
L217D lda LDR.STARTUP.LEN,x
sta IO.LINEBUF,x
dex
bne L217D
lda #$AD
sta IO.LINEBUF
L218B lda LDR.PFXLEN
cmp #$03
bcs L2198
jsr MLI
.DA #MLI.C.SETPREFIX
.DA LDR.GETSETPFX1.P
L2198 lda LDR.STARTUP.LEN1
bne L21C1
jsr LDR.KSW
ldx #$1C
L21A2 lda LDR.PRODOSBASIC,x
sta $400,x
dex
bpl L21A2
ldx #$1F
L21AD lda LDR.COPYRIGHT,x
sta $480,x
dex
bpl L21AD
lda #$8D
jsr MON.COUT1
jsr MON.COUT1
jsr MON.COUT1
L21C1 ldx #$02
L21C3 lda LDR.JMP.GP.ENTRY,x
sta DOS.WARMSTART,x
sta DOS.COLDSTART,x
sta MON.USRJMP,x
lda LDR.AMPERSANDJMP,x
sta MON.AMPERSANDJMP,x
dex
bpl L21C3
lda LDR.BRKVECT
sta MON.BRKVECT
lda LDR.BRKVECT+1
sta MON.BRKVECT+1
lda LDR.POWERUP
sta MON.POWERUP
lda LDR.POWERUP+1
sta MON.POWERUP+1
eor #$A5
sta MON.POWERUPBYTE
lda #$A5
sta AS.TRCFLG
lda BS.IVERSION
sta MLI.IVERSION
LDR.JMP.GP.ENTRY
jmp GP.ENTRY
LDR.BRKVECT .DA MON.BREAKV
LDR.POWERUP .DA GP.ENTRY
LDR.AMPERSANDJMP
jmp GP.DOSCMD
LDR.KSW lda GP.INVECT0
sta ZP.KSW
lda GP.INVECT0+1
sta ZP.KSW+1
ldx LDR.STARTUP.LEN
inx
lda #$8D
rts
LDR.CSWVECT .DA LDR.CSW
LDR.KSWVECT .DA LDR.KSW
LDR.GFINFO.P .DA #10
LDR.GFINFO.P.PATHBUF
.DA LDR.STARTUP.LEN
.BS 16
LDR.GETSETPFX1.P
.DA #1
LDR.GETSETPFX1.P.BUF
.DA LDR.GETSETPFX1.SLASHLEN
LDR.GETSETPFX1.SLASHLEN
.DA #1
LDR.GETSETPFX1.SLASH
.AS "/"
LDR.STARTUP.LEN1
.DA #0
LDR.ONLINE.P
.DA #2
LDR.ONLINE.P.DEVNUM
.DA #$70
LDR.ONLINE.P.BUF
.DA MLI.PATHBUF+1
LDR.GETSETPFX2.P
.DA #1
LDR.GETSETPFX2.P.BUF
.DA MLI.PATHBUF
LDR.PFXLEN .DA #0
LDR.UNABLE .AS -"*** UNABLE TO EXECUTE BASIC SYSTEM ***"
LDR.PRODOSBASIC .AS -" PRODOS BASIC 1.5 "
LDR.COPYRIGHT .AS -" COPYRIGHT APPLE 1983-92"
.BS $2400-*
*--------------------------------------
MAN
SAVE usr/src/basic.15/basic.s.ldr
LOAD usr/src/basic.15/basic.s
ASM