jmechner
100755 140 lines (100 sloc) 1.589 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
 lst off

 org $300

*
* loresshow:0C00.0FFF ($400)
* framedata:1000.6BFF ($5C00)
*
* buffer18 :6C00.7DFF ($1200 one track)
* rw18.d000:7E00.82FF ($500 moved to aux ramcard)
*

BbundID = $AD

loresshow = $c00
buffer18 = $6c00

rw18 = $d000
rw18temp = $7e00

slot = $FD
track = $FE
lastrack = $FF

startrack = 12 ;last 6 sectors here

* 13,14,15,16,17 (5 full tracks here)

errcode = 0

start jsr $e74c ;get slot#
 txa
 asl
 asl
 asl
 asl

 sta $C009 ;aux zpage, ramcard
 sta slot

 bit $C083
 bit $C083

* Move rw18 to its home

 ldx #>rw18temp
 ldy #>rw18
 lda #5
 jsr movedata

* Now we can use rw18

 jsr rw18
 db 7,BbundID

 jsr rw18
 db 0,5,1 ;drive on

 jsr rw18 ;seek to startrack
 db 2,1,startrack

* handle special track with

 jsr rw18
 db 3 ;read in original data
 db >buffer18
 lda #1
 bcs :error

* update last 6 sectors

 ldx #>loresshow
 ldy #>buffer18+$C00
 lda #6
 jsr movedata

* write it back out

 jsr rw18
 db 5 ;writesequ
 db >buffer18
 lda #2
 bcs :error

* write out rest of data...

 lda #>loresshow+$600
:wloop sta :buf

 inc track

 jsr rw18
 db 5 ;writesequ
:buf db $11
 lda #2
 bcs :error

 lda :buf
 adc #$12
 cmp #>loresshow+$600+{5*$1200}
 bne :wloop

 lda #0

:error pha
 jsr rw18
 db 1 ;drive off
 pla

 sta $C008
 bit $C081
 sta errcode
 rts

*------------------------------------------------- movedata
*
* Move data: x:source, y:dest, a:length
*

movedata stx :src+2
 sty :dst+2
 tax

 ldy #0
:loop
:src lda $1100,y
:dst sta $1100,y
 iny
 bne :loop

 inc :src+2
 inc :dst+2

 dex
 bne :loop

 rts

*------------------------------------------------- EOF

Markdown Cheat Sheet

Format Text

Headers

# This is an <h1> tag
## This is an <h2> tag
###### This is an <h6> tag

Text styles

*This text will be italic*
_This will also be italic_
**This text will be bold**
__This will also be bold__

*You **can** combine them*

Lists

Unordered

* Item 1
* Item 2
  * Item 2a
  * Item 2b

Ordered

1. Item 1
2. Item 2
3. Item 3
   * Item 3a
   * Item 3b

Miscellaneous

Images

![GitHub Logo](/images/logo.png)
Format: ![Alt Text](url)

Links

http://github.com - automatic!
[GitHub](http://github.com)

Blockquotes

As Kanye West said:

> We're living the future so
> the present is our past.

Code Examples in Markdown

Syntax highlighting with GFM

```javascript
function fancyAlert(arg) {
  if(arg) {
    $.facebox({div:'#foo'})
  }
}
```

Or, indent your code 4 spaces

Here is a Python code example
without syntax highlighting:

    def foo:
      if not bar:
        return true

Inline code for comments

I think you should use an
`<addr>` element here instead.

Something went wrong with that request. Please try again. Dismiss

Looking for the GitHub logo?