annotate os9/level2/boot.asm @ 30:7b1b25ff010a

disk io for mmu
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 12 Jul 2018 06:25:25 +0900
parents 3c14d647bb51
children 01519215ec70
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 ********************************************************************
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 * Boot - V09 Boot module
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 *
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 * $Id: boot_1773.asm,v 1.1.1.1 2001/02/21 23:30:54 boisy Exp $
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 *
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 * Ed. Comments Who YY/MM/DD
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 * ------------------------------------------------------------------
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 nam Boot
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 ttl v09 Boot module
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
12 ifp1
14
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 use defsfile
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
14 endc
14
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 *
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 * map extended rom on page 0x40-
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
18 * first two bytes are extra rom module size
14
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 tylg set Systm+Objct
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 atrv set ReEnt+rev
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 rev set $01
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 edition set 1
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 mod eom,name,tylg,atrv,start,size
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 size equ .
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 name fcs /Boot/
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 fcb edition
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31
15
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
32 start
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
33 ldy #$40 extended rom page no.
15
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
34 clra
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
35 clrb
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
36 pshs d,x,y,u
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
37 tfr d,x
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
38 leay 4,s pointer to page no
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
39 ** read boot rom file size
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
40 os9 F$LDDDXY
14
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 bcs last
27
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
42 addb #$ff
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
43 adca #0
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
44 clrb
16
807141dc5ee8 sysgo fork
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 15
diff changeset
45 std ,s size return as d
30
7b1b25ff010a disk io for mmu
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
46 ** OS9 lv2 use $a000-$dfff as a temporary page
7b1b25ff010a disk io for mmu
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
47 ** demand at least that size ( ROM start at $ed00 )
7b1b25ff010a disk io for mmu
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
48 cmpa #$ed-$a0
7b1b25ff010a disk io for mmu
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
49 bhi ok
7b1b25ff010a disk io for mmu
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
50 lda #$ed-$a0
7b1b25ff010a disk io for mmu
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
51 ok
15
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
52 os9 F$BtMem
14
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 bcs last
15
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
54 ** u points the memory
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
55 stu 2,s return as x
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
56 ldd ,s
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
57 ldx #0
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
58 ** copy to Bt BtRAM
15
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
59 pagel tfr d,y
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
60 lda 5,s
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
61 sta $ffa0
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
62 tfr y,d
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
63 loop ldy ,x++
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
64 sty ,u++
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
65 subb #2
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
66 sbca #0
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
67 cmpb #0 $100 transfered?
15
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
68 bne loop
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
69 bita #$1f
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
70 bne loop
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
71 tsta
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
72 beq last all transfered
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
73 clr $ffa0 back to system map
15
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
74 ** 2k boundary
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
75 inc 5,s
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
76 ldx #0
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
77 bra pagel
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
78 last clr $ffa0
bb6a2a9f59f1 boot ...
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
79 puls d,x,y,u,pc
14
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 emod
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 eom equ *
3f18c1fa9132 add boot and sysgo
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83 end