+Andrew Davie Posted December 6, 2017 Share Posted December 6, 2017 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? Quote Link to comment Share on other sites More sharing options...
tschak909 Posted December 6, 2017 Share Posted December 6, 2017 You may want to talk to Kevin Savetz (user name Savetz here on AA), he's got a Kryoflux. -Thom Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted December 6, 2017 Author Share Posted December 6, 2017 You may want to talk to Kevin Savetz (user name Savetz here on AA), he's got a Kryoflux. -Thom Sorry, I have already transferred the images from the disks. I just need a good way to interpret them. Quote Link to comment Share on other sites More sharing options...
ggn Posted December 6, 2017 Share Posted December 6, 2017 If the disks don't contain any sensitive personal information maybe upload them somewhere for people to take a look? 1 Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted December 6, 2017 Author Share Posted December 6, 2017 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 1 Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted December 6, 2017 Author Share Posted December 6, 2017 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! 1 Quote Link to comment Share on other sites More sharing options...
+Allan Posted December 6, 2017 Share Posted December 6, 2017 Nice. Allan Quote Link to comment Share on other sites More sharing options...
Rybags Posted December 6, 2017 Share Posted December 6, 2017 (edited) 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 December 6, 2017 by Rybags Quote Link to comment Share on other sites More sharing options...
+Andrew Davie Posted December 6, 2017 Author Share Posted December 6, 2017 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.