Jump to content
IGNORED

Recovered disk images - circa 1984


Andrew Davie

Recommended Posts

I have about 40 images of Atari 800 disks from back when I was programming in my bedroom. The recovered disks (40 of the 52 were readable) were provided to me as "IMG" files, and that's all I know about them. They are raw binaries, I am pretty sure, of the disk contents. I've used a hex viewer to "snoop" on some of the content, and I'm delighted to see hard-to-read but clearly recognisable source code for my game "Qb" amongst several other things. I haven't seen this stuff myself for 30 years, so I'm very curious/excited to get it into a readable format.

 

I am looking for someone to assist me in converting the files on the recovered disks into text files that I can read/post on the web.

 

Your payment - eternal glory and gratitude.

 

Can anybody point me to suitable software, or volunteer to take an image or two... or 40... and return me the source code files in text format?

 

 

 

Link to comment
Share on other sites

I've fired up Atari800MacX and had a look at the disk image contents - absolutely delighted to see binaries of at least two unreleased 'games' (really prototypes) from 1983.

I had 'em running - haven't seen them in action for over 30 years, so that was a bit amazing.

 

I have no idea how to view/retrieve the source code yet. Yes, I'll put up one of the images for people to have at - see 11.zip which has what I suspect might have the source code for my 1984 game 'Qb'. That would be super cool.

 

 

11.zip

  • Like 1
Link to comment
Share on other sites

Had a chance to view some source - I found "MEDIT" and used that to load the files and view on the emulator. Yep, it's source code! In my defence, there was zero space on the disk and I had only one drive, so I had no comments in the source, and all labels were reduced to 4 letters maximum and spacing was minimised - just to get things to fit on the disk. I miss those days.... not!

  • Like 1
Link to comment
Share on other sites

By the looks that .IMG file is just a raw dump of a 720 sector disk.

 

I've managed to get a directory in Altirra by renaming the extension to XFD then just boot a Dos 2.x in drive 1 and mount your image in D2:

Here's it's directory listing:

  FIL         022
  CHS     OBJ 145
  PMDAT       081
  CROSSES2    025
  PMS         024
  BEG         072
  GENROUTS    020
  DRAWCUBE    049
  MAN         074
  SHP         028
  DOS     SYS 039
  DUP     SYS 042
  CHS         010
  INT         037
  CROSSES     015
024 FREE SECTORS

Here's a listing of a file called "MAN". It's truncated, the copy operation hits an ERROR 164 which generally means corruption where part of a file has been inadvertantly overwritten by another. (ed - that's annoying as frig, the stupid forum engine puts double vertical spacing in for no reason)

 

 

 

enmb = 5

vtn db 12

vect dw user,help,ctr1,skul,hind,eart,papl,papl,papl,heart,jmcr,slcr

vct2 dw 0,eys,w1,w6,w4,pc14,pa1,strb1,wtm1,w6,msa,ocs

ckc db 14,238,62,14,254,134,202,54,202,58,44,158

cks db 0,54,0,2,0,28,30,202,54,0,0,2

sha db 1,1,1,0,1,1,0,0,0,0,1,1

ian dw pc0,eyp,pc1,pc6,pc9,pc13,pap,strb,watm,pc15,mda,ocp

anmt db 1,1,1,1,1,1,0,0,0,1,1,1

napp db 0,0,2,2,5,3,0,0,0,4,0,1



manm lda #0

 sta cr

ma00 ldx cr

 lda cty,x

 bpl ma53

 txa

 and #1

 beq xtcr

 lda #127

 sta cty+1,x

ma54 lda $d20a

 and #15

 beq ma54

 cmp vtn

 bcs ma54

 tay

 lda $d20a

 cmp #15

 bcc yea

 lda napp,y

 cmp scn

 bcs ma54

yea tya

 sta cty,x

 asl a

 tay

 lda $d20a

 and #127

 ora #64

 sta ctmr+5,x

 lda ian,y

 sta anpl,x

 lda ian+1,y

 sta anp,x

 lda vct2,y

 sta anpl+1,x

 lda vct2+1,y

 sta anp+1,x

 lda #6

 sta cm,x

 ldy cty,x

 lda anmt,y

 sta afg,x

 lda #0

 sta afg+1,x

* sta cshd,x

 lda ckc,y

 sta colr,x

 lda cks,y

 sta colr+1,x

 lda #16

 sta cvs,x

 lda cty,x

ma53 cmp #127

 beq sdwcr

 asl a

 tay

 lda vect,y

 sta q

 lda vect+1,y

 sta q+1

 jmp (q)

xtcr inc cr

 lda cr

 cmp #5

 beq ma99

 jmp ma00

ma99 rts



sdwcr lda csq-1,x

 sta csq,x

 lda cx-1,x

 sta cx,x

 lda cy-1,x

 sta cy,x

 lda cz-1,x

 sta cz,x

 lda cvs-1,x

 sta cvs,x

 jmp xtcr



slcr jsr bang

 jsr mck

 lda cm,x

 bne xtcr

 lda sped

 sta divis

 sta jhi,x

 jsr dcal

 cmp #15

 bne sl24

 lda $d20a

 and #7

 tay

 lda joy4,y

sl24 tay

 ldx cr

 lda csq,x

 tax

 lda joy,y

 clc

 adc altn,x

 tax

 ldy alti,x

 lda bdf,y

 beq xtcr

 lda dif

 cmp $d20a

 bcc xtcr

 ldx cr

 lda #1

 sta jxd,x

 sta jyd,x

 lda #3

 sta cm,x

 lda csq,x

 sta use

 sty csq,x

 ldx use

 lda kex,x

 sta jfx

 lda key,x

 sta jfy

 lda kex,y

 sta jtx

 lda key,y

 sta jty

 ldx cr

 lda jfx

 cmp jtx

 bcc sl09

 dec jxd,x

sl09 lda jfy

 cmp jty

 bcc sl08

 dec jyd,x

sl08 sec

 lda jfx

 sbc jtx

 bcs sl07

 eor #255

 adc #1

sl07 jsr div

 ldx cr

 lda ql

 sta xil,x

 lda qh

 sta xih,x

 sec

 lda jfy

 sbc jty

 bcs sl06

 eor #255

 adc #1

sl06 jsr div

 ldx cr

 lda ql

 sta zil,x

 lda qh

 sta zih,x

 jmp xtcr



papl jsr mck

 jsr hit

 bcs pa000

 lda #255

 sta cty,x

 sta cty+1,x

 lda #0

 ldy #4

 jsr scr

pa000 jmp xtcr



chan db 0,30,60,90,120,150,180,210,255

heart lda cm,x

 bne he1

 lda csq,x

 cmp csq

 bne he1

 ldy nmen

 lda chan,y

 cmp $d20a

 bcc he1

 lda dif

 cmp $d20a

 bcc he1

 lda #4

 sta cm,x

he1 jsr mck

 jsr hit

 bcs he0

 lda demf

 bne he0

 lda nmen

 cmp #9

 bcc he2

 ldy #$10

 lda #0

 jsr scr

 ldx cr

 jmp he3

he2 inc nmen

 jsr nmos

he3 lda #255

 sta cty,x

 sta cty+1,x

he0 jmp xtcr



eart jsr bang

 jsr mck

 lda cm,x

 beq ea01

 cmp #90

 bcc ea00

 bne ea02

 lda #0

 sta cm,x

 jmp xtcr

ea02 dec cm,x

 lda $d20a

 and #3

 sta vskl

ea00 jmp xtcr

ea01 jmp chase



user lda demf

 beq us103

 lda $d20a

 beq tbpr

 jmp ctr1

us103 lda $d010

 and #1

 beq us11

 sta btc

 bne us8

us11 lda btc

 beq us8

 lda #0

 sta btc

tbpr ldy #4

us9 lda cvs,y

 bne us10

 lda cm,y

 cmp #7

 beq us10

 lda csq,y

 cmp csq

 beq us101

 cmp lsq

 bne us10

 lda cm,y

 cmp #1

 bne us10

us101 lda #7

 sta cm,y

 sty use

 lda #7

 jsr ssdt

 lda #$50

 ldy #0

 jsr scr

 ldy use

us10 dey

 bne us9

 lda #9

 jsr ssdt

 lda bns

 ora bns+1

 beq us8

 sed

 sec

 lda bns+1

 sbc #5

 cld

 bcs us102

 lda #1

 sta bns

 lda #0

us102 sta bns+1

us8 ldx cr

 lda demf

 beq invw

 jmp ctr1

invw jsr mck

 lda cm,x

 bne us03

 lda csq,x

 sta lsq

 lda $d300

 cmp d30

 bne us03

 cmp d31

 bne us03

 cmp d32

 bne us03

 and #15

 sta tm1

 tay

 lda mjoy,y

 bpl us01

us04 lda joy,y

 beq us03

 jsr juct

 jmp xtcr

us01 jsr mcbs

 beq us27

us03 jmp xtcr

us27 ldx cr

 ldy tm1

 bpl us04

 jmp xtcr



ctr1 jsr bang

 jsr mck

 lda cm,x

 bne ct00

 lda $d20a

 cmp #15

 bcs ct01

rndr lda $d20a

 jsr mcbs

 bne ct00

ct01 ldx cr

 lda $d20a

 and #7

 tay

 lda joy4,y

 tay

 jsr juct

ct00 jmp xtcr



jmcr jsr bang

 jsr mck

 lda cm,x

 bne ct00

 lda $d20a

 bne ct01

 lda $d20a

 jsr mcbs

 beq ct01

 jmp xtcr



skul jsr mck

 jsr bang

 jmp xtcr



help jsr bang

 jsr mck

 lda cm,x

 bne hp0

 ldy csq,x

 lda sqf,y

 bne ct01

 lda $d20a

 jsr mcbs

hp0 jmp xtcr



hind jsr bang

 jsr mck

 lda cm,x

 bne hn0

 lda dif

 asl a

 cmp $d20a

 bcs hn1

 lda #4

 sta cm,x

 bne hn0

hn1 ldy csq,x

 lda sqf,y

 beq ct01

 lda $d20a

 jsr mcbs

hn0 jmp xtcr



joy4 db 5,6,7,9,10,11,13,14

mjoy db 255,255,255,255,255,1,0,255,255,2,3,255,255,255,255,255

joy db 0,0,0,0,0,1,250,251,0,6,255,5,0,7,249,0

mvc dw mk03,mk01,mk02,mm3,mm4,mm5,mm6,mm7



dcal ldy csq,x

 lda cx,x

 sta jfx

 lda cy,x

 sta jfy

 ldx cx

 ldy cy

 lda #15

 cpx jfx

 beq ch0

 bcs ch1

 eor #4

 bpl ch0

ch1 eor #8

ch0 cpy jfy

 beq ch2

 bcs ch3

 eor #1

 bpl ch2

ch3 eor #2

ch2 rts



chase ldx cr

 lda $d20a

 cmp #20

 bcs ch8

 lda #1

 sta use

 jsr dcal

 sta tm1

 cmp #15

 beq ch7

 tay

 ldx cr

 jsr juct

 ldx cr

 ldy tm1

 lda mjoy,y

 bmi tjmp

 jsr mcbs

 bne ch8

tjmp dec use

 bmi ch7

 lda tm1

 ldy $d20a

 bpl tj2

 ora #12

 bne ch2

tj2 ora #3

 bne ch2

ch7 jmp rndr

ch8 jmp xtcr



mck ldx cr

 beq mk65

 txa

 eor #2

 tay

 lda cm,x

 ora cm,y

 bne mk65

 lda csq,x

 cmp csq,y

 bne mk65

 lda #4

 sta cm,x

mk65 lda cm,x

 cmp #8

 bcc mck0

 jmp mk03

mck0 asl a

 tay

 lda mvc,y

 sta q

 lda mvc+1,y

 sta q+1

 jmp (q)



mm7 lda cz,x

 sbc cy,x

 lsr a

 cmp #5

 bcc sdm8

 lda #5

sdm8 sta q

 lda cy,x

 cmp #8

 bcc sm65

 sbc q

 sta cy,x

 bcs sm8

sm65 lda #255

 sta cty,x

 sta cty+1,x

 lda #0

 sta cshd,x

 rts

sm8 lda jxd,x

 beq m79

 clc

 lda cxl,x

 adc xil,x

 sta cxl,x

 lda cx,x

 adc xih,x

 sta cx,x

 jmp m78

m79 sec

 lda cxl,x

 sbc xil,x

 sta cxl,x

 lda cx,x

 sbc xih,x

 sta cx,x

m78 lda jyd,x

 beq m77

 clc

 lda czl,x

 adc zil,x

 sta czl,x

 lda cz,x

 adc zih,x

 sta cz,x

 clc

 lda cy,x

 adc zih,x

 sta cy,x

 jmp m76

m77 sec

 lda czl,x

 sbc zil,x

 sta czl,x

 lda cz,x

 sbc zih,x

 sta cz,x

 sec

 lda cy,x

 sbc zih,x

 sta cy,x

m76 rts



mk01 pla

 pla

 jmp injum



mk02 ldy csq,x

 lda kd,y

 cmp #2

 bcs mk03

 cmp #1

 bne mk86

 lda cty,x

 bne mk86

 lda sqf,y

 beq mk86

 lda #4

 jsr ssdt

 lda #$10

 ldy #0

 jsr scr

mk86 ldx cr

 lda #0

 sta cm,x

 beq mk03



mm5 cpx #0

 beq mmm0

 lda csq,x

 cmp csq

 bne mmm0

 lda #4

 sta cm,x

 bne m7

mmm0 dec cvs,x

 bne mk03

 lda #0

 sta cm,x

 ldy cty,x

 lda sha,y

 sta cshd,x



mk03 lda cty,x

 beq m7

 dec ctmr+5,x

 bne m7

 lda #0

 sta cshd,x

 lda #4

 sta cm,x



m7 ldy csq,x

 lda kex,y

 sta cx,x

 lda key,y

 clc

 adc #45

 sta cy,x

 sta cz,x

 lda #0

 sta xil,x

 sta zil,x

 sta xih,x

 sta zih,x

 lda #128

 sta cxl,x

 sta czl,x

 rts



mm4 inc cvs,x

 lda cvs,x

 cmp #16

 bcc mk03

 lda #255

 sta cty,x

 sta cty+1,x

 lda #0

 sta cshd,x

 beq m7



mm6 lda cvs

 bne mk03

 lda $d20a

 and #31

 tay

 lda bdf,y

 beq mk03

 cpy csq

 beq mk03

 sty use

 txa

 eor #2

 tay

 lda use

 cmp csq,y

 beq mk03

 sta csq,x

 dec cm,x

 ldy cty,x

 lda sha,y

 sta cshd,x

 jmp mk03



mm3 dec jhi,x

 bne sl97

 lda #0

 sta cm,x

sl97 lda jxd,x

 beq s202

 lda cxl,x

 adc xil,x

 sta cxl,x

 lda cx,x

 adc xih,x

 sta cx,x

 bne s201

s202 lda cxl,x

 sbc xil,x

 sta cxl,x

 lda cx,x

 sbc xih,x

 sta cx,x

s201 lda jyd,x

 beq s203

 lda czl,x

 adc zil,x

 sta czl,x

 lda cz,x

 adc zih,x

 sta cz,x

 sta cy,x

 rts

s203 lda czl,x

 sbc zil,x

 sta czl,x

 lda cz,x

 sbc zih,x

 sta cz,x

 sta cy,x

 rts



ju00 rts

juct lda csq,x

 tax

 lda joy,y

 clc

 adc altn,x

 tax

 ldy alti,x

 lda bdf,y

 beq ju00

 ldx cr

 beq jpst

 cpy csq

 bne jpst

 lda dif

 cmp $d20a

 bcc ju00

jpst pla

 pla

 lda #1

 sta cm,x

 sta jxd,x

 sta jyd,x

 lda csq,x

 sta use

 sty csq,x

 ldx use

 lda kex,x

 sta jfx

 lda key,x

 sta jfy

 lda kex,y

 sta jtx

 lda key,y

 sta jty

 ldx cr

 lda jfx

 cmp jtx

 bcc ju09

 dec jxd,x

ju09 lda jfy

 cmp jty

 bcc ju08

 dec jyd,x

ju08 lda jll,x

 sta jlpn

 lda jlh,x

 sta jlpn+1

 jsr jcalc



injum ldx cr

 lda jll,x

 sta jlpn

 lda jlh,x

 sta jlpn+1

 ldy jpn,x

 lda (jlpn),y

 cmp #128

 bne in00

 lda #6

 jsr ssdt

 ldx cr

 lda #0

 ldy cty,x

 cpy #low enmb

 bne in787

 lda #2

 jsr ssdt

 ldx cr

 lda #99

in787 sta cm,x

 jsr mck

 jmp xtcr

in00 clc

 adc cy,x

 sta cy,x

 lda jxd,x

 beq in02

 lda cxl,x

 adc xil,x

 sta cxl,x

 lda cx,x

 adc xih,x

 sta cx,x

 jmp in01

in02 lda cxl,x

 sbc xil,x

 sta cxl,x

 lda cx,x

 sbc xih,x

 sta cx,x

in01 lda jpn,x

 bpl in85

 dec jpn,x

 jmp in86

in85 inc jpn,x

in86 lda jyd,x

 beq in03

 lda czl,x

 adc zil,x

 sta czl,x

 lda cz,x

 adc zih,x

 sta cz,x

 jmp xtcr

in03 lda czl,x

 sbc zil,x

 sta czl,x

 lda cz,x

 sbc zih,x

 sta cz,x

 jmp xtcr



mcbs and #3

 ldy cr

 ldx csq,y

 tay

 sta use

 lda kd,x

 cmp #2

 bcs mc00

 lda joy2,y

 adc altn,x

 tay

 lda alti,y

 tay

 lda legal,y

 ora bdf,y

 bne mc00

 sta bdf,x

 txa

 ldx #4

mc01 cmp csq,x

 bne mc02

 sty csq,x

mc02 dex

 bpl mc01

 tax

 lda #1

 sta bdf,y

 

 

Edited by Rybags
Link to comment
Share on other sites

Thanks - I just loaded the raw images into Atari800MacX and did a directory on them and they appeared to work OK, so lucky me.

The files are probably (from memory/guessing) - remember this is 34 years ago....

 

PMDAT - not sure. player/missile data...?

MAN - draws the player

CROSSES2 - draws the background bracketing crosses on the playfield. All hardwired code no data. That is, explicit load/mask with immediate value/or in immediate value/store

PMS - not sure - player/missiles?

BEG - beginning. code probably starts here

GENROUTS - general housekeeping routines

DRAWCUBE - hardwired cube draw - it's amazingly fast but stupid

SHP - no idea. shapes?

CHS - character set?

INT - interrupts i'd guess

CROSSES - the other crosses big/small

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...