Jump to content
IGNORED

F'WEB DSR Dump


atrax27407

Recommended Posts

For those of you who have an eprommer and want to dump the DSR of that one (or two) particular cards, here is the source for a program written many years ago by Tony McGovern in about 20 minutes. Tony and I were sitting at his place at Hawks Nest (in Oz) and he came up with this "gem" at my suggestion, It only works when loaded from F'WEB since it uses some of F'WEBs internal routines. The code is commented and, once assembled, will auto-start,

 

 

 

 

DEF START,SFIRST,SLAST

 

* F'WEB EQUs

 

DSRLNK EQU >FFD4

FILENT EQU >FFCC

FWREGS EQU >FF7C

CMSRET EQU >FF5C

HEXDIG EQU >FF24

 

VDPPAB EQU >1000

VDPBUF EQU >1056

 

* Set length of DSR to be saved

 

DSRLEN EQU >2000 CHANGE FOR DIFFERENT DSR LENGTH

 

* Use F'web workspace

 

AORG >A050 Avoid FW mailbox

 

SFIRST B @START

 

START EQU $

LWPI FWREGS

LI R0,>2000

BLWP *R8

DATA 0,>300

BLWP *R9

DATA >06

DATA TITLNM,TITLEN

 

BLWP *R9

DATA >64

DATA QUERY,QUELEN Put DSR query on screen

 

BLWP *R9

DATA >A4

DATA PROMPT,PRMLEN Default >1000

 

BLWP *R9

DATA >2C6

DATA MSG,MSGLEN

 

* Set CRU base

 

SETO @HEXDIG Allow only hexidecimal digits

BLWP @FILENT

DATA >A4+2,1

CLR R12

MOVB @>8322,R12 >8322 is first byte of FILENT buffer

ORI R12,>1000 else use VMBR from screen

 

* Get dump file name

 

DDNAM EQU >144

BLWP *R9

DATA >104

DATA DSAVN,DSAVL

BLWP *R9

DATA DDNAM

DATA DNAME,12

BLWP @FILENT

DATA DDNAM+3,1

MOVB @>8322,@DNAME+3

 

BLWP @FILENT

DATA DDNAM+11,1

MOVB @>8322,@DNAME+11

 

* Dump DSR to VDP

 

LI R0,>0100 >0001 for 16 bit HRDs >0100 for 8

LDCR R0,8

BLWP *R9

DATA VDPBUF Move DSR into VDP 6 bytes from beginning

DATA >4000,DSRLEN Assume no problems in reading address

CLR R0

LDCR R0,8 8 or 0 for 16

 

* Save file to Disk

* Error returns to AUTO menu screen after a honk

 

LI R0,DSRLEN Load R0 with DSR length

MOV R0,@FILLEN Load R0 with file length (>200 default)

BLWP *R9 Load PAB data to VDP

DATA VDPPAB

DATA PABDAT,PABLEN File name and length

LI R0,VDPPAB+9 Set SCNAM pointer

MOV R0,@>8356

BLWP @DSRLNK FW DSRLNK (no data)

JEQ ERROR Immediate error routine

MOV @CMSRET,R11 Fetch FW central menu return

RT

 

ERROR BLWP @>0 Bail out to XB screen and menu screen

 

* Various PAB data

 

PABDAT DATA >0600,VDPBUF,>0

FILLEN DATA >2000

DATA >0C

DNAME TEXT 'DSK1.DSRDMP1'

NXFILE EQU $-1

PABLEN EQU $-PABDAT

QUERY TEXT 'Which DSR CRU-base ?'

QUELEN EQU $-QUERY

PROMPT TEXT '>1000'

PRMLEN EQU $-PROMPT

DSAVN TEXT 'Dump to file'

DSAVL EQU $-DSAVN

TITLNM TEXT 'FWEB VN 4.40 DSR DUMP'

TITLEN EQU $-TITLNM

MSG TEXT 'Fctn-9 To Exit'

MSGLEN EQU $-MSG

EVEN

SLAST END START

 

 

  • Like 3
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...