home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1998-07-14 | 1.9 KB | 88 lines |
- Screen Open 0,640,256,2,$8000
- Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
- Dev Open 0,"trackdisk.device",128,0,0
- Reserve As Chip Work 10,100000
- Extension_8_0456 "ram:bckid.adf",9
- ST=Start(9)+8
- IMG=ST+160*4
- 'For TRK=0 To 2
- ' Add IMG,Deek(ST+2+TRK*4)
- 'Next
- For TRK=0 To 159
- SYNC=Deek(ST+TRK*4) : LE=Deek(ST+2+TRK*4)
- If SYNC=0
- Print "Writing Track";TRK
- DISKFORMAT[IMG,LE,TRK]
- DISKFLUSH
- Else
- Print "Writing Track";TRK;" (raw) "
- DISKRAWWRITE[IMG,LE,TRK,SYNC]
- ' DISKFLUSH
- ' DISKRAWREAD[Start(10),14000,TRK]
- ' Wsave "ram:test",10
- ' Wait Key
- End If
- Add IMG,LE
- Next
- IO=Dev Base(0)
- Loke IO+36,0
- Dev Do 0,9
- Dev Close
- End
- Procedure DISKWRITE[AD,LE,OS]
- IO=Dev Base(0)
- Loke IO+36,LE : Loke IO+40,AD : Loke IO+44,OS*512
- Dev Do 0,3
- End Proc
- Procedure DISKFORMAT[AD,LE,OS]
- IO=Dev Base(0)
- Loke IO+36,LE : Loke IO+40,AD : Loke IO+44,OS*512*11
- Dev Do 0,11
- End Proc
- Procedure DISKRAWWRITE[AD,LE,OS,SY]
- IO=Dev Base(0)
- BU=Start(10)
- NNN=LE-1000
- SYNC$= Extension_8_08D2($AAAAAAAA)+ Extension_8_08C4(SY)+ Extension_8_08C4(SY)
- ' SYNC$=Chr.w$(SY)+Chr.w$(SY)
- RETRY=0
- Repeat
- Repeat
- Loke IO+36,1
- Dev Do 0,9
- Poke$ BU,SYNC$
- Copy AD,AD+LE To BU+8
- Poke IO+30,16
- Loke IO+36,NNN : Loke IO+40,BU : Loke IO+44,OS
- Dev Do 0,17
- Loke IO+36,0
- Dev Do 0,9
- Poke IO+30,16
- Loke IO+36,20000 : Loke IO+40,BU : Loke IO+44,OS
- Dev Do 0,16
- If RETRY>0
- Print "R";
- Dec RETRY
- Else
- Print ".";
- Add NNN,-100
- RETRY=0
- End If
- Until Hunt(BU To BU+20000,SYNC$)
- Print ":";
- RETRY=5
- ' Poke IO+30,16
- ' Loke IO+36,20000 : Loke IO+40,BU : Loke IO+44,OS
- ' Dev Do 0,16
- Until Hunt(BU To BU+20000,SYNC$)
- Print NNN
- End Proc
- Procedure DISKRAWREAD[AD,LE,OS]
- IO=Dev Base(0)
- Poke IO+30,32
- Loke IO+36,LE : Loke IO+40,AD : Loke IO+44,OS
- Dev Do 0,16
- End Proc
- Procedure DISKFLUSH
- Dev Do 0,4
- End Proc