annotate os9/level1/pdisk.asm @ 31:bd2b07db8917 cocoos9lv2v3

CoCoOS9 version
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Jul 2018 15:16:13 +0900
parents
children 7c5379eb406e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
31
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 *********************************************
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 * Rdisk
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 * A driver for a Ram disk!
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 * Modified for os9l1 emulator by Soren Roug 2001
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 nam Pdisk
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 ttl A Device Driver for a RAM Disk
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 ifp1
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 use os9defs
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 use rbfdefs
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 endc
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 ***********************
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 * Edition History
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 * # date Comments
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 * -- -------- ----------------------------------------------
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 Revision equ 1
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 NumDrvs set 2 Number of drives
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 org Drvbeg
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 rmb NumDrvs*DrvMem
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 RAMSTA equ .
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 mod RAMEND,RAMNAM,Drivr+Objct,Reent+Revision,RAMENT,RAMSTA
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 fcb $FF mode byte
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 RAMNAM fcs /Pdisk/
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 RAMENT lbra INIT
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 lbra READ
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 lbra WRITE
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 lbra GETSTA
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 lbra PUTSTA
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 lbra TERM
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 *****************************
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 * INIT
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 * Set up the v09 disk
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 INIT ldb #NumDrvs Set no drives to 2
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45 * Setup drive tables
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
46 stb V.NDRV,u save it
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47 lda #$FF
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 leax DRVBEG,u point to drive table start
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
49 L0111 sta DD.TOT+1,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 sta <V.TRAK,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
51 leax <DRVMEM,x
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52 decb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 bne L0111
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
54 clrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
55 INITXIT rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
56
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
57 SETUPDT lda <PD.DRV,y Get the drive number
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
58 ldu V.PORT,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
59 sta 1,u drive number
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
60 stb 2,u msb of lsn
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 tfr x,d
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62 sta 3,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
63 stb 4,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
64 ldd PD.BUF,y
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
65 sta 5,u buffer address
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
66 stb 6,u
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
67 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
68
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
69 *****************************
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
70 * READ
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
71 * read a sector from disk
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
72 * Entry: U = Static Storage
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
73 * Y = Path Descriptor
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
74 * B = MSB of LSN
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
75 * X = LSB's of LSN
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
76 * Exit: 256 byte sector in PD.BUF buffer
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78 READ bsr SETUPDT
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
79 lda #$81
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
80 sta ,u // perform io
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
81 ldb ,u // return status
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
82 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
83
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
84 *****************************
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85 * WRITE
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
86 * Write a sector to disk
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
87 * Entry: U = Static Storage
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
88 * Y = Path Descriptor
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
89 * B = MSB of LSN
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
90 * X = LSB's of LSN
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
91 * PD.Buf = Sector to write
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
92 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
93 WRITE bsr SETUPDT
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
94 lda #$55
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
95 sta ,u // perform io
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
96 ldb ,u // return status
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
97 WRIT99 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
98
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
99 **************************
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100 * GETSTA
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
101 * get device status
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
102 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
103 GETSTA
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
104 Unknown comb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
105 clrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
106 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
107
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
108 **************************
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
109 * PUTSTA
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
110 * Set device Status
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
111 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
112 PUTSTA
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
113 PUTSTA90 clrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
114 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
115
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
116 *****************************
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
117 * TERM
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
118 * terminate Driver
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
119 *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
120 TERM clrb
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
121 rts
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
122
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
123 emod
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
124 RAMEND equ *
bd2b07db8917 CoCoOS9 version
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
125