Hexdos 4.0 disk image

Post Reply
bxdanny
Posts: 310
Joined: Thu Apr 16, 2015 2:27 pm
Location: Bronx, NY USA

Hexdos 4.0 disk image

Post by bxdanny »

I assembled the source code for Hexdos 4.0 that Dave the Administrator posted at Github, and created a working diskette image, which is attached, along with a description of the process used and the required copyright notice. I wanted to also include a scan I made of the printed manual, but it is too big to fit as an attachment to a post here, so I will have to find another way.
Attachments
Hexdos.zip
(12.36 KiB) Downloaded 690 times
Last edited by bxdanny on Sat May 16, 2015 9:30 pm, edited 2 times in total.
bxdanny
Posts: 310
Joined: Thu Apr 16, 2015 2:27 pm
Location: Bronx, NY USA

Re: Hexdos 4.0 Manual

Post by bxdanny »

I rescanned the manual as monochrome (with just the front cover still grayscale, because it contains gray) and it came out good, but is still too big to post here. So I uploaded it to the public folder on my Dropbox account. You can get it here:

https://dl.dropboxusercontent.com/u/258 ... Manual.pdf
BillO
Posts: 216
Joined: Tue Jul 08, 2014 4:03 pm
Location: Canada
Contact:

Re: Hexdos 4.0 disk image

Post by BillO »

Nice work!

What assembler did you use?
Box stock Superboard II Rev. B
KLyball replica 600D, replica 610 & KLyball Data Separator
OMS SBME and SBME+ memory cards
OMS Digi-Mule expansion bus
KLyball memory card
bxdanny
Posts: 310
Joined: Thu Apr 16, 2015 2:27 pm
Location: Bronx, NY USA

Re: Hexdos 4.0 disk image

Post by bxdanny »

Bill:

As described in the text file within the download, it was assembled using the OS-65D assembler, running under WinOSI. Slow, but it worked. The source code intended for use with A65 on the PC doesn't work, because the way the .BYTE directive is used is not compatible with A65 syntax.

--Danny
No current OSI hardware
Former programmer for Dwo Quong Fok Lok Sow and Orion Software Associates
Former owner of C1P MF (original version) and C2-8P DF (502-based)
BillO
Posts: 216
Joined: Tue Jul 08, 2014 4:03 pm
Location: Canada
Contact:

Re: Hexdos 4.0 disk image

Post by BillO »

Hi Danny,

I was working on that before life caught up to me. A few emergencies, vacations and household projects can sure throw a wrench into things like this.

I'm not sure when I'll get back to it, but the result will be put up on Github. I do have a work copy that I got compiled with A65 or the Kowalski 6502 emulator ( but not both :( ). Those strange byte assignments that were done to accommodate the older assembler like these:

Code: Select all

       JSR MOVE ; Pick up the Basic cold start code, then modify and run
       .WORD $BD15,DBADDR-1
       .BYTE $C2 - $16
       .BYTE $23 - $16, GETVAL; Low byte
       .BYTE $25 - $16
              .DBYTE GETVAL	; High byte
       *=*-1
       .BYTE $3D - $16, USR	; Low byte
       .BYTE $3F - $16
              .DBYTE USR		; High byte
       *=*-1
       .BYTE $8C - $16,$0C
       
; Set up jump back to INTER after running first part of cold start
       .BYTE $C2 - $16, $4C
       .BYTE $C3 - $16, INTER
       .BYTE $C4 - $16
              .DBYTE INTER
       *=*-1
       .BYTE $FF
       JSR DBADDR
INTER                   		; Second half of cold start
       JSR MOVE
       .WORD $BDC1, DBADDR - 1
       .BYTE $139 - $C2
       .BYTE $1F5 - $C2, $0C
       .BYTE $124 - $C2, PROMPT; Low byte
       .BYTE $126 - $C2
              .DBYTE PROMPT	; High byte
       *=*-1
       .BYTE $12F - $C2, WARM	; Low byte
       .BYTE $131 - $C2
               .DBYTE WARM	; High byte
       *=*-1
       
; Set up jump to warm start entry point after running second half
       .BYTE $136 - $C2, $4C
       .BYTE $137 - $C2, WARM - 4
       .BYTE $138 - $C2
               .DBYTE WARM - 4
       *=*-1
       .BYTE $FF
       JSR DBADDR
       
; Set up Basic's workspace pointers (back up one page)
       DEC $7A
       DEC $C4
WARM   JSR MOVE			; Warm start entry, pointed to by JMP at $0000

; Reset disk controller
       .WORD FLOPUP-1,DBADDR-1
       .BYTE $4D-$C
       .BYTE $11-$C,$8D
       .BYTE $4D-$C,$60
       .BYTE $FF
       LDA #4
       STA FLOPIN+1
       LDA #$40
       STA FLOPIN
       JSR DBADDR

; CLEAR DBADDR (File descriptors)
       LDX #$300-DBADDR
       LDA #$FF
       STA DBADDR-1,X
       DEX
       BNE *-4
       STX TRACK
       DEX
       TXS

; Patch in real-time clock
       JSR MOVE
       .WORD PZERO-1,$DF
       .BYTE $EF-$E0
       .BYTE $130-$E0,$4C
       .BYTE $131-$E0,SECOND
       .BYTE $132-$E0
              .DBYTE SECOND
       *=*-1
       .BYTE $FF
Were changed like this:

Code: Select all

       JSR MOVE ; Pick up the Basic cold start code, then modify and run
       .WORD $BD15, DBADDR-1
       .BYTE $C2 - $16
       .BYTE $23 - $16, <GETVAL   ; Low byte
       .BYTE $25 - $16, >GETVAL	; High byte
       .BYTE $3D - $16, <USR 	  ; Low byte
       .BYTE $3F - $16, >USR		; High byte
       .BYTE $8C - $16, $0C
       
; Set up jump back to INTER after running first part of cold start
       .BYTE $C2 - $16, $4C
       .BYTE $C3 - $16, <INTER
       .BYTE $C4 - $16, >INTER
       .BYTE $FF
       JSR DBADDR

INTER                   		; Second half of cold start
       JSR MOVE
       .WORD $BDC1, DBADDR - 1
       .BYTE $139 - $C2
       .BYTE $f5 - $C2, $0C
       .BYTE $124 - $C2, <PROMPT   ; Low byte
       .BYTE $126 - $Cc, >PROMPT	; High byte
       .BYTE $12F - $C2, <WARM	  ; Low byte
       .BYTE $131 - $C2, >WARM	  ; High byte

WM4 = WARM - 4
      
; Set up jump to warm start entry point after running second half
       .BYTE $136 - $C2, $4C
       .BYTE $137 - $C2, <WM4
       .BYTE $138 - $C2, >WM4
       .BYTE $FF
       JSR DBADDR
       
; Set up Basic's workspace pointers (back up one page)
       DEC $7A
       DEC $C4
WARM   JSR MOVE			; Warm start entry, pointed to by JMP at $0000

; Reset disk controller
       .WORD FLOPUP-1,DBADDR-1
       .BYTE $4D-$C
       .BYTE $11-$C,$8D
       .BYTE $4D-$C,$60
       .BYTE $FF
       LDA #4
       STA FLOPIN+1
       LDA #$40
       STA FLOPIN
       JSR DBADDR

; CLEAR DBADDR (File descriptors)
       LDX #$300-DBADDR
       LDA #$FF
       STA DBADDR-1,X
       DEX
       BNE *-4
       STX TRACK
       DEX
       TXS

; Patch in real-time clock
       JSR MOVE
       .WORD PZERO-1,$DF
       .BYTE $EF-$E0
       .BYTE $130-$E0,$4C
       .BYTE $131-$E0, <SECOND
       .BYTE $132-$E0
       .BYTE >SECOND
       .BYTE $FF
Box stock Superboard II Rev. B
KLyball replica 600D, replica 610 & KLyball Data Separator
OMS SBME and SBME+ memory cards
OMS Digi-Mule expansion bus
KLyball memory card
Post Reply