Skip to navigation


Workspaces: Disk operations workspace

[Apple II version]

Name: Disk operations workspace [Show more] Type: Workspace Address: $0800 to $0A6F Category: Workspaces Summary: Variables used by the disk operations and DOS 3.3 RWTS routines
Context: See this workspace in context in the source code References: No direct references to this workspace in this source file
ORG $0800 CLEAR $0800, $0A6E ; The disk operations workspace shares memory with the ; ship data blocks at K%, so we need to clear this block ; of memory to prevent BeebAsm from complaining .buffer SKIP 48 ; A 256-byte sector buffer, where we can load sectors ; from the disk, such as the track/sector list, or the ; commander file contents ; ; For file data, this is where we store the data that ; we want to save, before it is pre-nibblized into ; 6-bit nibbles in buff2 by the prenib routine ; ; It is also where file data is stored after being ; post-nibblized, in which case the 6-bit nibbles in ; buffr2 are converted into 8-bit bytes and stored here ; ; [Show more]
; ; This variable is used by the following: ; ; * gettsl ; * prenib ; * pstnib ; * rentry ; * rfile ; * wfile ; ; This list only includes code that refers to the ; variable by name; there may be other references to ; this memory location that don't use this label, and ; these will not be mentioned above
.fretrk SKIP 1 ; The number of the last track that we checked for a ; free sector in the getsct routine ; ; [Show more]
; ; This variable is used by the following: ; ; * getsct ; ; This list only includes code that refers to the ; variable by name; there may be other references to ; this memory location that don't use this label, and ; these will not be mentioned above
.dirtrk SKIP 3 ; The direction in which we are searching tracks for ; free sectors in the getsct routine (+1 or -1) ; ; [Show more]
; ; This variable is used by the following: ; ; * getsct ; ; This list only includes code that refers to the ; variable by name; there may be other references to ; this memory location that don't use this label, and ; these will not be mentioned above
.tracks SKIP 1 ; The number of tracks per disk ; ; [Show more]
; ; This variable is used by the following: ; ; * getsct ; ; This list only includes code that refers to the ; variable by name; there may be other references to ; this memory location that don't use this label, and ; these will not be mentioned above
SKIP 3 ; Padding to ensure the bitmap variable lines up with ; byte #56 ($38) for the bitmap of free sectors .bitmap SKIP 200 ; Bit map of free sectors in track 0, at byte #56 ($38) ; in the buffer ; ; [Show more]
; ; This variable is used by the following: ; ; * getsct ; ; This list only includes code that refers to the ; variable by name; there may be other references to ; this memory location that don't use this label, and ; these will not be mentioned above
.buffr2 SKIP 350 ; A 342-byte buffer for storing data in the 6-bit nibble ; format ; ; This is where we load file data from the disk in the ; 6-bit nibble format, so it can be post-nibblized into ; 8-bit bytes and stored in buffer ; ; It is also where we store nibblized data that is ready ; to be saved to the disk ; ; [Show more]
; ; This variable is used by the following: ; ; * prenib ; * pstnib ; * read ; * write ; ; This list only includes code that refers to the ; variable by name; there may be other references to ; this memory location that don't use this label, and ; these will not be mentioned above
.track SKIP 1 ; Storage for a track number in the RWTS code ; ; [Show more]
; ; This variable is used by the following: ; ; * gettsl ; * rdrght ; * rentry ; * rvtoc ; * rwts ; * trytrk ; * wfile ; ; This list only includes code that refers to the ; variable by name; there may be other references to ; this memory location that don't use this label, and ; these will not be mentioned above
.sector SKIP 1 ; Storage for a sector number in the RWTS code ; ; [Show more]
; ; This variable is used by the following: ; ; * gettsl ; * rentry ; * rttrk ; * rvtoc ; * wfile ; ; This list only includes code that refers to the ; variable by name; there may be other references to ; this memory location that don't use this label, and ; these will not be mentioned above
.curtrk SKIP 1 ; The current track before performing a seek in the RWTS ; code ; ; [Show more]
; ; This variable is used by the following: ; ; * seek ; * trytrk ; ; This list only includes code that refers to the ; variable by name; there may be other references to ; this memory location that don't use this label, and ; these will not be mentioned above
.tsltrk SKIP 1 ; The track for the commander file's track/sector list ; ; [Show more]
; ; This variable is used by the following: ; ; * isfull ; * wfile ; ; This list only includes code that refers to the ; variable by name; there may be other references to ; this memory location that don't use this label, and ; these will not be mentioned above
.tslsct SKIP 1 ; The sector for the commander file's track/sector list ; ; [Show more]
; ; This variable is used by the following: ; ; * isfull ; * wfile ; ; This list only includes code that refers to the ; variable by name; there may be other references to ; this memory location that don't use this label, and ; these will not be mentioned above
.filtrk SKIP 1 ; The track for the commander file's contents ; ; [Show more]
; ; This variable is used by the following: ; ; * isfull ; * wfile ; ; This list only includes code that refers to the ; variable by name; there may be other references to ; this memory location that don't use this label, and ; these will not be mentioned above
.filsct SKIP 1 ; The sector for the commander file's contents ; ; [Show more]
; ; This variable is used by the following: ; ; * isfull ; * wfile ; ; This list only includes code that refers to the ; variable by name; there may be other references to ; this memory location that don't use this label, and ; these will not be mentioned above
.mtimel SKIP 1 ; The motor on time (low byte) ; ; [Show more]
; ; This variable is used by the following: ; ; * armwat ; * rwts ; ; This list only includes code that refers to the ; variable by name; there may be other references to ; this memory location that don't use this label, and ; these will not be mentioned above
.mtimeh SKIP 1 ; The motor on time (high byte) ; ; [Show more]
; ; This variable is used by the following: ; ; * armwat ; * rwts ; * wsect ; ; This list only includes code that refers to the ; variable by name; there may be other references to ; this memory location that don't use this label, and ; these will not be mentioned above
.seeks SKIP 1 ; The maximum number of seeks ; ; [Show more]
; ; This variable is used by the following: ; ; * rdrght ; * trytrk ; * wsect ; ; This list only includes code that refers to the ; variable by name; there may be other references to ; this memory location that don't use this label, and ; these will not be mentioned above
.recals SKIP 1 ; The maximum number of arm recalibrations to 2 ; ; [Show more]
; ; This variable is used by the following: ; ; * trytrk ; * wsect ; ; This list only includes code that refers to the ; variable by name; there may be other references to ; this memory location that don't use this label, and ; these will not be mentioned above
.slot16 SKIP 1 ; The slot number containing the disk controller card, ; multiplied by 16 to move the slot number into the top ; nibble (so the value is $x0 for slot x) ; ; This can then be used as an offset to add to the soft ; switch addresses for the disk controller, to ensure we ; access the addresses for the correct slot ; ; [Show more]
; ; This variable is used by the following: ; ; * prterr ; * rttrk3 ; * rwts ; * trytrk ; * write ; * wsect ; ; This list only includes code that refers to the ; variable by name; there may be other references to ; this memory location that don't use this label, and ; these will not be mentioned above
.atemp0 SKIP 1 ; Temporary storage for the read/write status bit ; ; [Show more]
; ; This variable is used by the following: ; ; * rentry ; ; This list only includes code that refers to the ; variable by name; there may be other references to ; this memory location that don't use this label, and ; these will not be mentioned above
.stkptr SKIP 1 ; Temporary storage for the stack pointer when running ; the RWTS low-level disk access routines ; ; [Show more]
; ; This variable is used by the following: ; ; * drverr ; * prterr ; * rfile ; * wfile ; ; This list only includes code that refers to the ; variable by name; there may be other references to ; this memory location that don't use this label, and ; these will not be mentioned above
.idfld SKIP 4 ; Storage for four bytes used in the RDADR16 routine: ; ; * Checksum ; * Sector ; * Track ; * Volume ; ; [Show more]
; ; This variable is used by the following: ; ; * rdaddr ; * rdrght ; * rttrk ; ; This list only includes code that refers to the ; variable by name; there may be other references to ; this memory location that don't use this label, and ; these will not be mentioned above
PRINT "Disk operations workspace from ", ~buffer, "to ", ~P%-1, "inclusive"