Atari ST Diagnostic Disk (Heavily Protected)

All about the serious stuff.

Moderators: Mug UK, Zorro 2, Moderator Team

rcamp48
Atari User
Atari User
Posts: 33
Joined: Wed Feb 21, 2018 8:03 am

Atari ST Diagnostic Disk (Heavily Protected)

Postby rcamp48 » Sun Sep 02, 2018 4:21 am

I have an Original of my Atari ST Diagnostics Disk, I have used a disassembly program in e public domain to produce source code for it, my original went bad months ago, it was made by PCA Progressive Computer Applications, I have an old backup that will not run but has the complete program on it. The program I used was DISASM_2.PRG has anyone heard of it, come with the ST Protection Techniques disc, The Protector, as a public domain file. Here is a sample of the code produced:

********

* This is a disassembly of file

* DISASM_2.PRG

* which is comprised of

*

* TEXT Hex bytes DATA Hex bytes BSS Hex bytes

* 2BA4 126C E18

*

* in continuous format.

*

* Total PROGRAM bytes: 4C28 H Total FILE bytes: 657F H

*

********


.text

movea.l a7,a5

movea.l #grafix,a7

movea.l $4(a5),a5

move.l $C(a5),d0

add.l $14(a5),d0

add.l $1C(a5),d0

add.l #$100,d0

move.l d0,-(a7)

move.l a5,-(a7)

bsr mshrink

bsr dgetdrv

add.b #$41,d0

move.b d0,directry

jsr window

lea flstats,a1

move.w fil_mem,d0

bmi int_abt

move.b s_head,H

cmpi.w #$2,d0

beq dodafile

subq.w #3,fil_mem

bsr ssp_on

move.l m_stop,d3

move.l m_start,d2

move.l d3,d0

sub.l d2,d0

move.l d0,$2(a1)

move.l d0,$58(a1)

st prgtype

move.l d0,$34(a1)

bsr setbuf

move.l d0,$44(a1)

move.l a0,$38(a1)

move.l m_start,d2

move.l d2,address

move.l d2,prior

move.l d2,d0

jsr displc

bsr headsin

lea holdbuf,a0

movea.l a1,a2

adda.l #$28,a2

move.l holdcnt,d0

subq.l #2,d0

addq.l #1,a0

mem_name:

HCA:

move.b (a0)+,(a2)+

dbeq d0,mem_name

move.b #$2E,(a2)+

lea dis,a0

m_disit:

HDA:

move.b (a0)+,(a2)+

bne m_disit

clr.l holdcnt

bra on6

dodafile:

HE8:

clr.l m_start

lea directry,a0

lea filenm,a2

moveq #$25,d1

fill_dir:

HFC:

move.b $0(a0,d1.l),d0

dbne d1,fill_dir

subq.l #1,d1

bmi bad_dir

cmpi.b #$5C,d0

bne fill_dir

addq.l #2,d1

adda.l d1,a0

dir_dun:

H112:

move.b (a2)+,d0

move.b d0,(a0)+

bne dir_dun

clr.w -(a7)

pea directry

bsr fopen

move.w d0,handle

pea flstats

addi.l #$A,(a7)

move.w #$1A,-(a7)

trap #$1

addq.l #6,a7

move.w #$37,-(a7)

pea directry

move.w #$4E,-(a7)

trap #$1

addq.l #8,a7

tst.l d0

beq found

bad_dir:

H154:

move.l #unfound,_addr_in

bra peel_out

found:

H162:

lea dis,a6

movea.l a1,a0

adda.l #$28,a0



What programming language on the ST is this : and what will load it ????

Especially the compiler: Russ
Last edited by rcamp48 on Mon Sep 03, 2018 1:23 am, edited 1 time in total.

User avatar
shoggoth
Nature
Nature
Posts: 942
Joined: Tue Aug 01, 2006 9:21 am
Location: Halmstad, Sweden
Contact:

Re: Atari ST Diagnostic Disk (Heavily Protected)

Postby shoggoth » Sun Sep 02, 2018 7:55 am

rcamp48 wrote:I have an Original of my Atari ST Diagnostics Disk, I have used a disassembly program in e public domain to produce source code for it, my original went bad months ago, it was made by PCA Progressive Computer Applications, I have an old backup that will not run but has the complete program on it. The program I used was DISASM_2.PRG has anyone heard of it, come with the ST Protection Techniques disc, The Protector, as a public domain file. Here is a sample of the code produced:

********

* This is a disassembly of file

* DISASM_2.PRG

* which is comprised of

*

* TEXT Hex bytes DATA Hex bytes BSS Hex bytes

* 2BA4 126C E18

*

* in continuous format.

*

* Total PROGRAM bytes: 4C28 H Total FILE bytes: 657F H

*

********


.text

movea.l a7,a5

movea.l #grafix,a7

movea.l $4(a5),a5

move.l $C(a5),d0

add.l $14(a5),d0

add.l $1C(a5),d0

add.l #$100,d0

move.l d0,-(a7)

move.l a5,-(a7)

bsr mshrink

bsr dgetdrv

add.b #$41,d0

move.b d0,directry

jsr window

lea flstats,a1

move.w fil_mem,d0

bmi int_abt

move.b s_head,H

cmpi.w #$2,d0

beq dodafile

subq.w #3,fil_mem

bsr ssp_on

move.l m_stop,d3

move.l m_start,d2

move.l d3,d0

sub.l d2,d0

move.l d0,$2(a1)

move.l d0,$58(a1)

st prgtype

move.l d0,$34(a1)

bsr setbuf

move.l d0,$44(a1)

move.l a0,$38(a1)

move.l m_start,d2

move.l d2,address

move.l d2,prior

move.l d2,d0

jsr displc

bsr headsin

lea holdbuf,a0

movea.l a1,a2

adda.l #$28,a2

move.l holdcnt,d0

subq.l #2,d0

addq.l #1,a0

mem_name:

HCA:

move.b (a0)+,(a2)+

dbeq d0,mem_name

move.b #$2E,(a2)+

lea dis,a0

m_disit:

HDA:

move.b (a0)+,(a2)+

bne m_disit

clr.l holdcnt

bra on6

dodafile:

HE8:

clr.l m_start

lea directry,a0

lea filenm,a2

moveq #$25,d1

fill_dir:

HFC:

move.b $0(a0,d1.l),d0

dbne d1,fill_dir

subq.l #1,d1

bmi bad_dir

cmpi.b #$5C,d0

bne fill_dir

addq.l #2,d1

adda.l d1,a0

dir_dun:

H112:

move.b (a2)+,d0

move.b d0,(a0)+

bne dir_dun

clr.w -(a7)

pea directry

bsr fopen

move.w d0,handle

pea flstats

addi.l #$A,(a7)

move.w #$1A,-(a7)

trap #$1

addq.l #6,a7

move.w #$37,-(a7)

pea directry

move.w #$4E,-(a7)

trap #$1

addq.l #8,a7

tst.l d0

beq found

bad_dir:

H154:

move.l #unfound,_addr_in

bra peel_out

found:

H162:

lea dis,a6

movea.l a1,a0

adda.l #$28,a0

periods:

H170:

cmpi.b #$2E,(a0)+

bne periods

move.b (a0),d0

lsl.l #8,d0

move.b $1(a0),d0

lsl.l #8,d0

move.b $2(a0),d0

lsl.l #8,d0

disit:

H186:

move.b (a6)+,(a0)+

bne disit

lea prgtype,a0

lea prgtype,a2

move.w (a2)+,d2

cmp.l otype,d0

bne noto

lea otype,a0

bra iso_prg

noto:

H1A8:

cmp.l (a2)+,d0

dbeq d2,noto

tst.w d2

bpl iso_prg

move.b #$FF,rsctype

move.l #notprg,_addr_in

jsr fm_alert

move.w #$3,_int_in

clr.l $12(a1)

cmpi.b #$2,d0

beq on6

jsr form_di

bra abort

iso_prg:

H1E8:

st (a0)

pea flstats

move.l #$24,-(a7)

move.w handle,-(a7)

bsr fread

move.l $2(a1),d0

add.l $6(a1),d0

move.l d0,$58(a1)

cmpi.w #$601A,flstats

bne on2

moveq #$1C,d0

move.l d0,$16(a1)

move.l d0,diskcnt

add.l $2(a1),d0

move.l d0,$1C(a1)

add.l $6(a1),d0

move.l d0,$20(a1)

subi.l #$1C,d0

bra on3

on2:

H23A:

cmpi.w #$601B,flstats

beq on210

move.l #unkprg,_addr_in

bra peel_out

on210:

H252:

lea cont,a0

lea non,a2

moveq #$3,d0

on225:

H260:

move.b (a2)+,(a0)+

dbf d0,on225

tst.l $16(a1)

bne on25

move.l #$24,$16(a1)

on25:

H274:

move.l $2(a1),d0

add.l $6(a1),d0

on3:

H27C:

add.l $A(a1),d0

move.l d0,$34(a1)

bsr headsin

move.l $2(a1),d0

lea setbuf,a0

tst.b prgtype

bmi get_lab

lea osetbuf,a0

get_lab:

H2A0:

jsr (a0)

move.l d0,$44(a1)

move.l a0,$38(a1)

clr.w -(a7)

move.w handle,-(a7)

move.l $20(a1),-(a7)

bsr fseek

tst.l $E(a1)

beq on4

move.l $E(a1),-(a7)

bsr malloc

move.l d0,$40(a1)

move.l d0,-(a7)

move.l $E(a1),-(a7)

move.w handle,-(a7)

bsr fread

on4:

H2DC:

tst.w $1A(a1)

bne prewant

move.l $24(a1),d0

sub.l $2(a1),d0

sub.l $6(a1),d0

sub.l #$1C,d0

cmpi.w #$601A,flstats

beq itscont

subq.l #8,d0

itscont:

H302:

sub.l $E(a1),d0

move.l d0,-(a7)

move.l d0,$12(a1)

bsr malloc

move.l d0,$3C(a1)

move.l d0,-(a7)

move.l $12(a1),-(a7)

move.w handle,-(a7)

bsr fread

movea.l $3C(a1),a2

movea.l $38(a1),a3

tst.b prgtype

bmi its_prg

move.l $2(a1),d3

moveq #$0,d2

fillrel:

H33C:

move.w (a2)+,d0

beq niktrel

cmpi.w #$6,d0

bpl niktrel

move.w (a2)+,d0

beq isabs

andi.b #$7,d0

addq.b #2,d0

move.b d0,$0(a3,d2.l)

cmpi.b #$6,d0

bne isabs

move.w $FFFE(a2),d0

lsr.w #3,d0

move.w d0,$2(a3,d2.l)

isabs:

H364:

addq.l #2,d2

niktrel:

H366:

addq.l #2,d2

cmp.l d3,d2

bmi fillrel

movea.l #$0,a6

tst.w db_enabl

beq o_d_

move.l $12(a1),d3

sub.l $2(a1),d3

beq o_d_

movea.l $3C(a1),a6

movea.l $3C(a1),a2

adda.l $2(a1),a2

moveq #$0,d2

filreld:

H392:

move.w (a2)+,d0

beq nidtrel

cmpi.w #$6,d0

bpl nidtrel

move.w (a2)+,d0

beq disabs

andi.w #$7,d0

addq.w #2,d0

_nohold:

H3A6:

cmpi.w #$100,d2

bmi nohold_

subi.w #$FE,d2

move.b #$1,(a6)+

bra _nohold

nohold_:

H3B6:

move.b d2,(a6)+

moveq #$0,d2

move.b d0,(a6)+

cmpi.b #$6,d0

bne disabs

move.b $FFFF(a2),d0

lsr.b #3,d0

move.b d0,(a6)+

move.b $FFFE(a2),d0

lsr.b #3,d0

move.b d0,(a6)+

disabs:

H3D2:

addq.l #2,d2

subq.l #2,d3

nidtrel:

H3D6:

addq.l #2,d2

subq.l #2,d3

bhi filreld

clr.b $1(a6)

suba.l $3C(a1),a6

addq.l #1,a6

o_d_:

H3E6:

move.l a6,$12(a1)

move.l a6,-(a7)

move.l $3C(a1),-(a7)

bsr mshrink

move.l $12(a1),d0

beq p_nidrel

addq.l #1,d0

move.l d0,$12(a1)

p_nidrel:

H400:

move.l $E(a1),d5

beq prewant

movea.l $40(a1),a2

movea.l $38(a1),a3

move.l $2(a1),d3

move.l $6(a1),d4

moveq #$0,d2

relsymb:

H41A:

move.w $8(a2,d2.l),d0

move.l $A(a2,d2.l),d1

btst #$C,d0

bne norels

btst #$E,d0

bne norels

btst #$B,d0

bne norels

btst #$9,d0

beq no_labl

move.b #$2,$0(a3,d1.l)

bra norels

no_labl:

H442:

add.l d3,d1

btst #$A,d0

bne rels

add.l d4,d1

rels:

H44C:

move.l d1,$A(a2,d2.l)

norels:

H450:

addi.l #$E,d2

cmp.l d5,d2

bmi relsymb

bra prewant

its_prg:

H45E:

moveq #$0,d5

move.l (a2)+,d3

move.l d3,d7

move.l $2(a1),d6

move.b d3,d4

asr.l #4,d3

asl.l #1,d3

adda.l d3,a3

andi.l #$F,d4

move.l d4,d3

rel_def:

H478:

move.b d4,d3

addq.b #1,d4

bset d4,d5

moveq #$0,d2

firstly:

H480:

moveq #$0,d1

move.b (a2)+,d1

beq on0

cmpi.b #$1,d1

bne lastly

addi.l #$FE,d2

bra firstly

lastly:

H494:

add.l d2,d1

add.l d1,d7

cmp.l d6,d7

bpl on0

move.b d1,d4

asr.l #4,d1

asl.l #1,d1

beq notover

move.w d5,(a3)

moveq #$0,d5

adda.l d1,a3

notover:

H4AA:

andi.l #$F,d4

add.b d3,d4

bclr #$4,d4

beq rel_def

move.w d5,(a3)+

moveq #$0,d5

bra rel_def

on0:

H4BE:

move.w d5,(a3)

movea.l #$0,a6

tst.w db_enabl

beq relc_d

tst.b $FFFF(a2)

beq relc_d

movea.l $3C(a1),a6

sub.l $2(a1),d7

cmpi.l #$100,d7

bmi tinyd_1

p_tinyd:

H4E4:

cmpi.l #$100,d7

bmi tiny_d

move.b #$1,(a6)+

subi.l #$FE,d7

cmpi.l #$100,d7

bpl p_tinyd

tinyd_1:

H4FE:

move.b d7,(a6)+

tiny_d:

H500:

move.b (a2)+,(a6)+

bne tiny_d

suba.l $3C(a1),a6

addq.l #1,a6

move.l $E(a1),d0

beq relc_d

movea.l $38(a1),a3

moveq #$9,d3

moveq #$0,d7

movea.l #$1,a4

bsr setsym

relc_d:

H522:

move.l a6,$12(a1)

move.l a6,-(a7)

move.l $3C(a1),-(a7)

bsr mshrink

prewant:

H530:

tst.l $6(a1)

beq no_data

move.l $6(a1),d0

bsr setbuf

move.l d0,$4C(a1)

move.l a0,$48(a1)

move.l $E(a1),d0

beq no_data

move.l $2(a1),d7

movea.l $48(a1),a3

moveq #$A,d3

suba.l a4,a4

bsr setsym

no_data:

H55C:

tst.l $A(a1)

beq on6

move.l $A(a1),d0

bsr setbuf

move.l d0,$54(a1)

move.l a0,$50(a1)

move.l $E(a1),d0

beq on6

move.l $34(a1),d7

sub.l $A(a1),d7

movea.l $50(a1),a3

moveq #$8,d3

suba.l a4,a4

bsr setsym

on6:

H58C:

move.l #$FFFFFFFF,-(a7)

bsr malloc

move.l d0,d3

move.l d0,-(a7)

bsr malloc

move.l d0,bigbuff

lea buffy,a0

move.l d0,(a0)

move.l d0,$4(a0)

lsr.l #2,d3

bclr #$0,d3

move.l d3,d2

add.l d3,d2

add.l d2,$4(a0)

move.l d3,county

move.l d2,bbcount

move.l d2,bcount

tst.w fil_mem

bne bigslop

move.l m_start,bigbuff

move.l d2,county

moveq #$0,d2

moveq #$0,d3

move.l $2(a1),bbcount

move.l $2(a1),bcount

bigslop:

H5FC:

add.l d2,(a0)

add.l d3,$4(a0)

tst.b rsctype

bpl not_rsc

move.l $24(a1),d0

move.l d0,$6(a1)

clr.l $A(a1)

clr.l $2(a1)

bsr headsin

move.l d0,$2(a1)

move.l d0,$34(a1)

clr.l $16(a1)

clr.l $1C(a1)

not_rsc:

H62E:

move.l $2(a1),stopit

tst.w fil_mem

bne fil_bag

movea.l bigbuff,a4

move.l m_stop,stopit

bra qtime_1

fil_bag:

H650:

clr.w -(a7)

move.w handle,-(a7)

move.l $16(a1),-(a7)

bsr fseek

move.l #$0,address

bsr bigread

qtime_1:

H66E:

clr.w -(a7)

lea outdisk,a0

move.b d_drive,(a0)+

move.b #$3A,(a0)+

move.b #$5C,(a0)+

movea.l a1,a2

adda.l #$28,a2

moveq #$B,d0

pre_crat:

H68E:

move.b (a2)+,(a0)+

dbeq d0,pre_crat

pea outdisk

move.w #$3C,-(a7)

trap #$1

addq.l #8,a7

tst.l d0

bpl created

move.l #badcrat,_addr_in

bra peel_out

created:

H6B4:

move.w d0,handlef

move.l county,d3

move.l d3,tinycnt

lea buffy,a2

adda.l current,a2

movea.l (a2),a2

tst.b rsctype

bmi stfhead

move.w #$700,sym_flag

bra addr_0

back1:

H6E8:

move.l address,d0

sub.l prior,d0

move.l address,prior

neg.b d0

move.b d0,holdbuf

addq.l #1,holdcnt

addr_0:

H70C:

jsr extendw

lea jump1,a0

move.w d1,d0

rol.w #4,d0

andi.w #$F,d0

asl.w #2,d0

movea.l $0(a0,d0.w),a0

jsr (a0)

move.l tinycnt,d3

tst.b wantw

beq nowant

lea holdbuf,a6

adda.l holdcnt,a6

move.b tabsit,(a6)+

move.b tabsit,(a6)+

move.b aster,(a6)+

addq.l #3,holdcnt

pea hexcmmd

jsr holdit

lea hexcmmd,a0

move.w hexcunt,d0

mulu #$5,d0

clrxy:

H776:

clr.b (a0)+

dbf d0,clrxy

clr.w hexcunt

nowant:

H782:

lea holdbuf,a6

move.l holdcnt,d7

subq.l #1,d7

bsr stuffit

clr.l holdcnt

move.l d3,tinycnt

move.l address,d0

cmp.l stopit,d0

bmi back1

move.b #$FF,(a2)

subq.l #1,d3

btst #$0,d3

beq eq_stuf

subq.l #1,d3

clr.b $1(a2)

eq_stuf:

H7C2:

bsr stuff

move.l txtwrit,total

lea flstats,a1

move.l txtwrit,stopit

move.l #$0,txtwrit

move.l #$0,address

tst.w fil_mem

bne stf_fil

lea buffy,a0

move.l (a0),bigbuff

move.l $4(a0),(a0)

move.l county,d0

move.l d0,bbcount

move.l d0,bcount

lsr.l #1,d0

bclr #$0,d0

move.l d0,county

add.l d0,$4(a0)

lea buffy,a2

adda.l current,a2

movea.l (a2),a2

stf_fil:

H83C:

move.l county,d3

movea.l $38(a1),a3

moveq #$FF,d4

move.l $44(a1),d5

bsr preread

stfhead:

H850:

lea header,a6

moveq #$FF,d7

stuffs:

H858:

move.b (a6)+,d0

bmi chktex

addq.l #1,d7

bra stuffs

chktex:

H860:

lea header,a6

bsr stuffit

tst.b rsctype

bmi do_data

tst.b sym_no

beq x_symtab

move.l $E(a1),d6

bne z_symtab

lea nict_sym,a6

move.b (a6)+,d7

andi.l #$FF,d7

bsr stuffit

bra x_symtab

z_symtab:

H89A:

movea.l $40(a1),a1

add.l a1,d6

pea pre_ty

jsr holdit

lea holdbuf,a6

move.l holdcnt,d7

subq.l #1,d7

bsr stuffit

agin_ty:

H8BE:

move.l #$A0D2A09,holdbuf

move.l #$4,holdcnt

move.l a1,-(a7)

move.w $8(a1),d1

clr.w $8(a1)

jsr holdit

pea spaces

jsr holdit

move.w d1,$8(a1)

lea labtype,a6

moveq #$0,d0

moveq #$7,d7

may_ty:

H8FC:

asl.w #1,d1

bcc no_ty

move.l $0(a6,d0.l),-(a7)

jsr holdit

no_ty:

H90A:

addq.l #4,d0

dbf d7,may_ty

pea spaces

jsr holdit

move.l $A(a1),d0

jsr displc

adda.l #$E,a1

lea holdbuf,a6

move.l holdcnt,d7

subq.l #1,d7

bsr stuffit

cmpa.l d6,a1

bmi agin_ty

lea tail,a6

moveq #$7,d7

bsr stuffit

lea flstats,a1

clr.l holdcnt

x_symtab:

H95C:

tst.l $2(a1)

beq do_data

lea textlin,a6

moveq #$A,d7

bsr stuffit

lea holdbuf,a6

move.l holdcnt,d7

moveq #$0,d0

clr.l prior

move.w #$200,sym_flag

move.l $44(a1),labcunt

tst.b prgtype

bpl gogetlb

moveq #$FE,d4

move.w #$8,d5

swap d5

move.w (a3),d5

gogetlb:

H9A6:

tst.l labcunt

beq dissymb

bsr getlabs

addrchk:

H9B2:

cmp.l d0,d4

bmi gogetlb

bhi dissymb

add.l m_start,d0

bsr sym_stor

move.b holdbuf,d1

cmp.b H,d1

beq no_doub

move.b #$A,(a6)+

move.b #$D,(a6)+

addq.l #2,holdcnt

moveq #$1,d1

bsr sym_stor

no_doub:

H9E4:

clr.l holdcnt

sub.l m_start,d0

bsr getlabs

move.b #$A,(a6)+

move.b #$D,(a6)+

addq.l #2,d7

dissymb:

H9FE:

move.b tabsit,(a6)+

addq.l #1,d7

chkline:

HA06:

move.b (a4)+,(a6)+

bmi no_byte

addq.l #1,d7

subq.l #1,d2

bne chkline

bsr preread

bra chkline

no_byte:

HA16:

move.b $FFFF(a6),d0

neg.b d0

andi.l #$FF,d0

add.l prior,d0

move.l d0,prior

move.b #$A,$FFFF(a6)

move.b #$D,(a6)

lea holdbuf,a6

addq.l #1,d7

bsr stuffit

btst #$0,d0

bne endlabs

subq.l #1,d2

bne noload

move.l bcount,d7

sub.l d2,d7

add.l stopper,d7

cmp.l stopit,d7

beq endlabs

move.l bcount,d7

add.l d7,stopper

bsr preread

noload:

HA74:

lea holdbuf,a6

clr.l holdcnt

moveq #$0,d7

bra addrchk

endlabs:

HA86:

btst #$0,d3

beq eq_labs

subq.l #1,d3

move.b spaces,(a2)

eq_labs:

HA94:

bsr stuff

clr.l holdcnt

tst.w fil_mem

beq alldone

do_data:

HAA8:

lea flstats,a1

move.l $16(a1),d0

move.l $1C(a1),d4

move.l d4,diskcnt

move.l $6(a1),d5

move.l d5,stopit

sub.l d0,d4

tst.l d5

beq outdata

tst.b rsctype

bmi dat_lin

clr.w -(a7)

move.w handle,-(a7)

move.l diskcnt,-(a7)

bsr fseek

move.l #$0,address

bsr bigread

add.l d2,address

move.l d2,bcount

dat_lin:

HB02:

move.w #$400,sym_flag

lea datalin,a6

moveq #$B,d7

bsr stuffit

lea holdbuf,a6

moveq #$0,d7

movea.l #$0,a5

tst.b rsctype

bmi do_1st

n_rsc:

HB2C:

movea.l $48(a1),a3

move.l d4,d0

subq.l #1,d0

moveq #$10,d6

swap d6

move.w (a3),d6

btst #$1,d6

bne do_1st

bset #$0,d6

do_1st:

HB44:

move.l $4C(a1),labcunt

bsr get_db

tst.l $12(a1)

bne do_1sto

move.l #$FFFFFFFF,$12(a1)

bra datseek

do_1sto:

HB60:

bsr get_relc

datseek:

HB64:

move.w #$A0D,holdbuf

move.l #$2,holdcnt

bsr sym_stor

lea holdbuf,a0

move.b $2(a0),d1

cmp.b H,d1

beq x_doub

move.b #$A,(a6)+

move.b #$D,(a6)+

addq.l #2,holdcnt

moveq #$1,d1

bsr sym_stor

x_doub:

HBA0:

bsr get_db

clr.l holdcnt

lea holdbuf,a6

movea.w d1,a5

subq.l #1,d7

bmi dun_sym

seekdat:

HBB6:

bsr stuffit

lea holdbuf,a6

dun_sym:

HBC0:

moveq #$8,d7

lea dcbtab,a0

tab_1:

HBC8:

move.b (a0)+,(a6)+

dbf d7,tab_1

tst.l $12(a1)

bne not_rad

move.b #$6C,$FFFE(a6)

move.l d0,-(a7)

move.w sym_flag,-(a7)

move.w #$700,sym_flag

moveq #$2,d1

moveq #$3,d7

moveq #$0,d0

rol_rad:

HBF2:

rol.l #8,d0

move.b (a4)+,d0

subq.l #1,d5

subq.l #1,d2

bhi droll_rd

tst.l d5

ble droll_rd

bsr bigread

add.l d2,address

move.l d2,bcount

droll_rd:

HC10:

dbf d7,rol_rad

addq.l #4,d4

move.l #$9,holdcnt

tst.b prgtype

bmi pnot_rad

move.b d_rlflag,d1

cmpi.b #$6,d1

bne pnot_rad

pea pyes_rad

movem.l d0-d2/d6/a0,-(a7)

move.l $E(a1),d7

movea.l $40(a1),a0

move.w d_rlsym,d6

bra o_symb

pnot_rad:

HC50:

bsr sym_stor

pyes_rad:

HC54:

move.l holdcnt,d7

lea holdbuf,a6

subq.b #2,d7

bsr get_relc

subq.l #4,$12(a1)

move.w (a7)+,sym_flag

move.l (a7)+,d0

bsr stuffit

lea holdbuf,a6

tst.l d5

beq endat_rl

cmp.l d0,d4

bne dun_sym

bra datseek

not_rad:

HC8C:

moveq #$3F,d7

move.b (a4),d1

cmpi.b #$20,d1

bmi its_num

cmpi.b #$7F,d1

bpl its_num

is_spc:

HCA0:

move.b apost,(a6)+

subq.b #1,d7

aph_now:

HCA8:

move.b d1,(a6)+

addq.l #1,a4

addq.l #1,d4

subq.l #1,d5

bhi no_apend

move.b apost,(a6)+

subq.b #2,d7

bra endata

no_apend:

HCBE:

subq.l #1,d2

bhi read_ap

bsr bigread

add.l d2,address

move.l d2,bcount

read_ap:

HCD2:

subq.b #1,d7

bne pre_new

moveq #$48,d7

move.b apost,(a6)+

lea holdbuf,a6

subq.l #1,$12(a1)

bra seekdat

pre_new:

HCEC:

subq.l #1,$12(a1)

beq xaph_rl

cmp.l d0,d4

bne more_ap

xaph_rl:

HCF6:

move.b apost,(a6)+

subq.b #1,d7

new_sym:

HCFE:

subi.l #$47,d7

neg.l d7

lea holdbuf,a6

bsr stuffit

lea holdbuf,a6

moveq #$0,d7

tst.b rsctype

bmi datseek

move.w a5,d1

beq dun_sym

cmp.l d0,d4

beq datseek

bra dun_sym

more_ap:

HD32:

move.b (a4),d1

cmpi.b #$20,d1

bpl qury_ap

bra not_ap

qury_ap:

HD3C:

cmpi.b #$7F,d1

bmi aph_now

not_ap:

HD44:

move.b apost,(a6)+

subq.b #1,d7

cmpi.b #$4,d7

bmi no_room

move.b comma,(a6)+

subq.b #1,d7

its_num:

HD5A:

lea hexlab,a0

numagin:

HD60:

andi.w #$FF,d1

ror.l #4,d1

move.b hex,(a6)+

move.b $0(a0,d1.w),(a6)+

rol.l #4,d1

andi.b #$F,d1

move.b $0(a0,d1.w),(a6)+

subq.b #3,d7

addq.l #1,a4

addq.l #1,d4

subq.l #1,d5

beq endata

subq.l #1,d2

bhi read_nm

bsr bigread

add.l d2,address

move.l d2,bcount

read_nm:

HD98:

subq.l #1,$12(a1)

beq new_sym

cmp.l d0,d4

beq new_sym

cmpi.b #$4,d7

bmi no_room

move.b comma,(a6)+

subq.l #1,d7

move.b (a4),d1

cmpi.b #$20,d1

bmi numagin

cmpi.b #$7F,d1

bpl numagin

bra is_spc

no_room:

HDC6:

subi.l #$47,d7

neg.l d7

lea holdbuf,a6

bra seekdat

endata:

HDD8:

subi.l #$47,d7

neg.l d7

lea holdbuf,a6

bsr stuffit

endat_rl:

HDEA:

btst #$0,d3

beq eq_end

subq.l #1,d3

move.b spaces,(a2)

eq_end:

HDF8:

bsr stuff

outdata:

HDFC:

tst.b rsctype

bmi alldone

clr.b savew

tst.l $A(a1)

beq alldone

move.l $58(a1),d4

lea bsslin,a6

moveq #$A,d7

movea.l $50(a1),a3

move.l d4,d0

subq.l #1,d0

moveq #$10,d6

swap d6

move.w (a3),d6

bset #$0,d6

move.l $54(a1),labcunt

move.w #$100,sym_flag

bsr get_db

bsseek:

HE46:

bsr stuffit

move.w #$A0D,holdbuf

move.l #$2,holdcnt

bsr sym_stor

lea holdbuf,a0

move.b $2(a0),d1

cmp.b H,d1

beq z_doub

move.b #$A,(a6)+

move.b #$D,(a6)+

addq.l #2,holdcnt

moveq #$1,d1

bsr sym_stor

z_doub:

HE86:

lea dsbtab,a0

moveq #$8,d5

dobssln:

HE8E:

move.b (a0)+,(a6)+

dbf d5,dobssln

addi.l #$9,d7

move.l d7,holdcnt

bsr get_db

tst.l labcunt

beq bssend

move.l d0,d5

sub.l d4,d0

jsr displc

move.l d5,d0

move.l d5,d4

lea holdbuf,a6

move.l holdcnt,d7

subq.l #1,d7

bra bsseek

bssend:

HECC:

move.l $34(a1),d0

sub.l d4,d0

jsr displc

lea holdbuf,a6

move.l holdcnt,d7

subq.l #1,d7

bsr stuffit

alldone:

HEEA:

lea endlin,a6

moveq #$9,d7

bsr stuffit

btst #$0,d3

beq all_end

subq.l #1,d3

move.b spaces,(a2)

all_end:

HF04:

bsr stuff

move.l txtwrit,d0

sub.l total,d0

move.l d0,total

move.w handlef,-(a7)

bsr fclose

int_abt:

HF24:

bsr ssp_off

jsr form_di

tst.w fil_mem

beq abort

move.w handle,-(a7)

bsr fclose

abort:

HF40:

jsr v_clsvw

jsr exit

sgetlab:

HF4C:

move.l (a7)+,saveptr

move.w (a7)+,savew

movem.l d1-d7/a0-a1/a3,-(a7)

lea flstats,a1

move.l address,d4

movea.l $38(a1),a3

movea.l $40(a1),a0

move.w savew,d1

beq get

ext.l d1

tst.b size

beq itsbyte

subq.l #2,d4

itsbyte:

HF86:

add.l d1,d4

move.l d4,d0

tst.b prgtype

bpl set_68k

moveq #$1,d1

sub.l m_start,d4

bsr rollbit

addq.b #1,d5

btst d5,d6

beq no_resy

addq.b #1,d1

no_resy:

HFA6:

bsr sym_stor

move.l d0,d4

sub.l m_start,d4

bsr disc_lb

beq ugly

bra set_hit

set_68k:

HFBC:

cmp.l $2(a1),d4

bmi pre_68k

bsr disc_lb

beq ugly

bsr rollbit

moveq #$0,d1

bset d5,d6

beq zer0_68k

moveq #$1,d1

zer0_68k:

HFD6:

addq.b #1,d1

move.w d6,$0(a3,d4.l)

bra post_pre

pre_68k:

HFDE:

move.b $0(a3,d4.l),d1

bne post_pre

move.b #$1,$0(a3,d4.l)

moveq #$1,d1

post_pre:

HFEC:

bsr sym_stor

bra cleared

get:

HFF4:

tst.w fil_mem

beq ugly

subq.l #4,d4

tst.b prgtype

bpl x68k

bsr rollbit

addq.b #1,d5

btst d5,d6

beq ugly

moveq #$2,d1

bsr sym_stor

move.l d0,d4

bsr disc_lb

beq ugly

set_hit:

H1024:

bsr rollbit

bset d5,d6

move.w d6,$0(a3,d4.l)

bra cleared

x68k:

H1030:

move.b $0(a3,d4.l),d1

beq ugly

bsr sym_stor

cmpi.b #$6,d1

beq cleared

cmpi.b #$2,d1

beq cleared

move.l d0,d4

cmpi.b #$1,d1

beq ugly

cmpi.b #$4,d1

bne duo_bss

move.b $0(a3,d4.l),d1

bne cleared

move.b #$1,$0(a3,d4.l)

bra cleared

duo_bss:

H1062:

movea.l $48(a1),a3

cmpi.b #$5,d1

bne set_hit

movea.l $50(a1),a3

bra set_hit

cleared:

H1072:

subq.l #1,holdcnt

move.w #$0,savew

unclr:

H1080:

movem.l (a7)+,d1-d7/a0-a1/a3

move.w savew,-(a7)

move.l saveptr,-(a7)

rts

ugly:

H1092:

move.w #$FFFF,savew

bra unclr

disc_lb:

H109C:

movem.l d7,-(a7)

cmp.l $2(a1),d4

bmi lb_disc

move.l d4,d7

movea.l $48(a1),a3

sub.l $2(a1),d4

cmp.l $58(a1),d7

bmi lb_disc

sub.l $6(a1),d4

movea.l $50(a1),a3

cmp.l $34(a1),d7

bmi lb_disc

sub.l d7,d7

lb_disc:

H10C6:

movem.l (a7)+,d7

rts

rollbit:

H10CC:

move.l d4,d5

andi.l #$F,d5

asr.l #4,d4

asl.l #1,d4

move.w $0(a3,d4.l),d6

rts

getlabs:

H10DE:

tst.b prgtype

bmi glabprg

etlabs:

H10E6:

addq.l #1,d4

move.b (a3)+,d1

subq.l #1,d5

beq ahit

tst.b d1

beq etlabs

ahit:

H10F2:

rts

glabprg:

H10F4:

tst.l labcunt

beq ahit

moveq #$2,d1

move.w d5,d6

swap d5

bogart:

H1102:

addq.l #2,d4

subq.b #1,d5

bpl notbeg

addq.l #2,a3

move.w (a3),d6

move.b #$7,d5

subq.l #2,labcunt

beq ahit

notbeg:

H1118:

subq.b #1,d1

lsr.w #1,d6

bcc no_pseud

btst #$0,d6

beq bhit

no_pseud:

H1124:

addq.b #1,d1

lsr.w #1,d6

bcc bogart

bhit:

H112A:

swap d5

move.w d6,d5

rts

get_db:

H1130:

tst.l labcunt

beq z_hit

move.l d7,-(a7)

moveq #$1,d1

move.w d6,d7

swap d6

bacall:

H1140:

addq.l #1,d0

subq.b #1,d6

bpl no_beg

addq.l #2,a3

move.w (a3),d7

move.b #$F,d6

subq.l #2,labcunt

bne no_beg

move.l (a7)+,d7

z_hit:

H1158:

moveq #$0,d1

rts

no_beg:

H115C:

lsr.w #1,d7

bcc bacall

tst.l $E(a1)

beq db_hit

addq.b #1,d1

db_hit:

H1168:

swap d6

move.w d7,d6

move.l (a7)+,d7

rts

get_relc:

H1170:

movem.l d1-d2/a2,-(a7)

moveq #$0,d2

moveq #$0,d1

movea.l $3C(a1),a2

seek_rl:

H117C:

move.b (a2)+,d1

beq last_rl

cmpi.b #$1,d1

bne dun_rl

addi.l #$FE,d2

bra seek_rl

dun_rl:

H118E:

add.l d1,d2

tst.b otype

bpl no_flags

move.b (a2)+,d1

move.b d1,d_rlflag

cmpi.b #$6,d1

bne no_flags

move.b (a2)+,d1

rol.w #8,d1

move.b (a2)+,d1

move.w d1,d_rlsym

no_flags:

H11B2:

move.l d2,$12(a1)

move.l a2,$3C(a1)

movem.l (a7)+,d1-d2/a2

rts

last_rl:

H11C0:

cmp.l $6(a1),d5

beq dun_rl

move.l #$FFFFFFFF,$12(a1)

movem.l (a7)+,d1-d2/a2

rts

sym_stor:

H11D4:

movem.l d0-d2/d6/a0,-(a7)

cmpi.b #$1,d1

beq pseudo

bmi no_sy

move.l $E(a1),d7

beq pseudo

movea.l $40(a1),a0

moveq #$0,d6

cmpi.b #$2,d1

beq anosymb

cmpi.b #$4,d1

beq anosymb

cmpi.b #$6,d1

bne it_sun

move.w $2(a3,d4.l),d6

o_symb:

H1208:

mulu #$E,d6

bcc nott_ao

move.l #overflw,_addr_in

bra peel_out

it_sun:

H121C:

add.l $2(a1),d0

cmpi.b #$3,d1

beq anosymb

add.l $6(a1),d0

anosymb:

H122A:

cmp.l $A(a0,d6.l),d0

bne un_symb

move.w $8(a0,d6.l),d2

and.w sym_flag,d2

bne nott_ao

un_symb:

H123C:

addi.l #$E,d6

cmp.l d7,d6

bmi anosymb

moveq #$1,d1

bra pseudo

nott_ao:

H124A:

lea holdbuf,a6

move.l holdcnt,d7

adda.l d7,a6

lea $0(a0,d6.l),a0

moveq #$7,d6

stfsym:

H125E:

move.b (a0)+,d2

beq apres_s

move.b d2,(a6)+

addq.l #1,d7

dbf d6,stfsym

apres_s:

H126A:

move.l d7,holdcnt

cmpi.b #$6,d1

bne no_plus

tst.l d0

beq no_plus

move.b space,(a6)+

move.b plus,(a6)+

move.b space,(a6)+

addq.l #3,holdcnt

jsr displc

no_plus:

H1298:

lea holdbuf,a6

move.l holdcnt,d7

adda.l d7,a6

move.b colon,(a6)+

addq.l #1,d7

move.l d7,holdcnt

no_sy:

H12B4:

movem.l (a7)+,d0-d2/d6/a0

rts

pseudo:

H12BA:

move.w H,hex

jsr displc

move.w rehex,hex

bra no_plus

stuffy:

H12D6:

move.b (a6)+,d0

beq nonono

move.b d0,(a2)+

addq.l #1,d3

cmp.l county,d3

bmi notyt

move.l d3,tinycnt

bsr stuff

notyt:

H12F0:

dbf d7,stuffy

nonono:

H12F4:

rts

headsin:

H12F6:

movem.l d0/a0-a2,-(a7)

lea flstats,a1

move.l $34(a1),d0

lea progbyt,a2

bsr heads

move.l $A(a1),d0

lea bssbyt,a2

bsr heads

move.l $2(a1),d0

lea textbyt,a2

bsr heads

move.l $6(a1),d0

lea databyt,a2

bsr heads

move.l $24(a1),d0

lea filebyt,a2

bsr heads

bra endhead

heads:

H133E:

jsr binhex

lea dsplace,a0

moveq #$6,d0

lope:

H134C:

cmpi.b #$30,(a0)

bne roun

addq.l #1,a0

dbf d0,lope

roun:

H1358:

move.b (a0)+,(a2)+

bne roun

move.b spaces,-(a2)

rts

endhead:

H1364:

lea filenm,a0

lea headnam,a2

tst.w fil_mem

bne headend

lea hd_mem,a2

lea memory,a0

mem_nd:

H1384:

move.b (a0)+,(a2)+

bne mem_nd

move.b spaces,-(a2)

lea holdbuf,a0

addq.l #1,a0

lea headnam,a2

headend:

H139C:

move.b (a0)+,(a2)+

bne headend

move.b spaces,-(a2)

movem.l (a7)+,d0/a0-a2

rts

preread:

H13AC:

movem.l d0-d1/a0-a1,-(a7)

clr.w -(a7)

move.w handlef,-(a7)

move.l address,-(a7)

bsr fseek

move.l stopit,d0

sub.l address,d0

cmp.l bbcount,d0

bmi readata

move.l bbcount,d0

readata:

H13DC:

move.l bigbuff,-(a7)

move.l d0,-(a7)

move.w handlef,-(a7)

bsr fread

movea.l bigbuff,a4

add.l d0,address

move.l d0,bcount

move.l d0,d2

movem.l (a7)+,d0-d1/a0-a1

rts

bigread:

H1408:

movem.l d0-d1/a0-a1,-(a7)

move.l stopit,d0

sub.l address,d0

cmp.l bbcount,d0

bmi reedlot

move.l bbcount,d0

reedlot:

H1426:

move.l bigbuff,-(a7)

move.l d0,-(a7)

move.w handle,-(a7)

bsr fread

movea.l bigbuff,a4

add.l d0,diskcnt

move.l d0,d2

movem.l (a7)+,d0-d1/a0-a1

rts

stuffit:

H144C:

move.b (a6)+,(a2)+

subq.l #1,d3

bne notyet

bsr stuff

notyet:

H1454:

dbf d7,stuffit

rts

stuff:

H145A:

movem.l d0-d1/a0-a1,-(a7)

sub.l county,d3

neg.l d3

clr.w -(a7)

move.w handlef,-(a7)

move.l txtwrit,-(a7)

bsr fseek

lea buffy,a2

adda.l current,a2

movea.l (a2),a2

move.l a2,-(a7)

move.l d3,-(a7)

move.w handlef,-(a7)

bsr fwrite

subq.l #4,current

neg.l current

lea buffy,a2

adda.l current,a2

movea.l (a2),a2

add.l d3,txtwrit

move.l county,d3

movem.l (a7)+,d0-d1/a0-a1

rts

setbuf:

H14C0:

asr.l #3,d0

addq.l #1,d0

osetbuf:

H14C4:

btst #$0,d0

beq is_even

addq.l #1,d0

is_even:

H14CC:

move.l d0,d3

move.l d0,-(a7)

bsr malloc

movea.l d0,a0

movea.l d0,a2

moveq #$0,d1

move.l d3,d0

subq.w #1,d3

clrbabs:

H14DE:

move.b d1,(a2)+

dbf d3,clrbabs

rts

setsym:

H14E6:

moveq #$0,d5

moveq #$0,d2

movea.l $40(a1),a2

symbs:

H14EE:

move.l $A(a2,d2.l),d4

move.w $8(a2,d2.l),d1

btst d3,d1

beq notrel

sub.l d7,d4

move.b d4,d6

asr.l #4,d4

asl.l #1,d4

move.w $0(a3,d4.l),d5

andi.l #$F,d6

add.w a4,d6

bset d6,d5

move.w d5,$0(a3,d4.l)

moveq #$0,d5

notrel:

H1516:

addi.l #$E,d2

cmp.l d0,d2

bmi symbs

rts

mshrink:

H1522:

move.l (a7)+,saveptr

clr.w -(a7)

move.w #$4A,-(a7)

trap #$1

adda.l #$C,a7

tst.l d0

beq freed

move.l #freerr,_addr_in

bra peel_out

freed:

H1548:

move.l saveptr,-(a7)

rts

fseek:

H1550:

move.l (a7)+,saveptr

move.w #$42,-(a7)

trap #$1

adda.l #$A,a7

tst.l d0

bpl freed

move.l #seekerr,_addr_in

bra peel_out

fread:

H1574:

move.l (a7)+,saveptr

move.w #$3F,-(a7)

trap #$1

adda.l #$C,a7

cmp.l $FFF8(a7),d0

bpl freed

move.l #badread,_addr_in

bra peel_out

fclose:

H159A:

move.l (a7)+,saveptr

move.w #$3E,-(a7)

trap #$1

addq.l #4,a7

tst.l d0

beq freed

move.l #badclos,_addr_in

bra peel_out

malloc:

H15B8:

move.l (a7)+,saveptr

move.w #$48,-(a7)

trap #$1

addq.l #6,a7

tst.l d0

bpl freed

move.l #badsymb,_addr_in

bra peel_out

fopen:

H15D8:

move.l (a7)+,saveptr

move.w #$3D,-(a7)

trap #$1

addq.l #8,a7

tst.l d0

bpl freed

move.l #badload,_addr_in

bra peel_out

fwrite:

H15F8:

move.l (a7)+,saveptr

move.w #$40,-(a7)

trap #$1

adda.l #$C,a7

cmp.l $FFF8(a7),d0

bpl freed

move.l #badwrit,_addr_in

peel_out:

H161C:

bsr ssp_off

jsr form_di

jsr fm_alert

bsr abort

dgetdrv:

H162E:

move.w #$19,-(a7)

trap #$1

addq.l #2,a7

rts

ssp_off:

H1638:

tst.l ssp

beq offed

move.l ssp,-(a7)

move.w #$20,-(a7)

trap #$1

addq.l #6,a7

offed:

H164E:

rts

ssp_on:

H1650:

tst.w fil_mem

bne offed

clr.l -(a7)

move.w #$20,-(a7)

trap #$1

addq.l #6,a7

move.l d0,ssp

rts

window:

H166A:

move.l #_contrl,pblock

move.l #_intin,_iioff

move.l #_ptsin,_pioff

move.l #_intout,_iooff

move.l #_ptsout,_pooff

_appl_in:

H169C:

move.l #_control,_c

move.l #_global,H46E4

move.l #_int_in,H46E8

move.l #_int_out,H46EC

move.l #_addr_in,H46F0

move.l #_addr_ou,H46F4

move.l #_c,_ad_c

move.w #$A,_control

move.l #$1,H4B18

clr.l H4B1C

bsr aes_it

bmi aes_err

graf_ha:

H1702:

move.w #$4D,_control

move.l #$5,H4B18

clr.l H4B1C

bsr aes_it

move.w d0,handle

move.w d0,H4B5E

move.w H4B40,cell_w

move.w H4B42,cell_h

v_opnvw:

H173E:

move.w #$64,_contrl

clr.w H4B54

move.w #$B,H4B58

move.w #$0,_intin

move.l #$10001,H42E2

move.l #$10001,H42E6

move.l #$10001,H42EA

move.l #$20001,H42EE

move.l #$10001,H42F2

clr.l H4AFE

clr.l H4B02

clr.l H4B06

clr.l H4B0A

clr.l H4B0E

clr.l H4B12

move.l #_intin,_iioff

move.l #_intout,_iooff

move.l #_intout,d0

add.l #$5A,d0

move.l d0,_pooff

bsr vdi_it

tst.w H4B5E

bne v_opned

move.l #vdierr,_addr_in

bsr fm_alert

move.w #$FFFF,fil_mem

bra v_clsvw

v_opned:

H17FE:

move.l #_intin,_iioff

move.l #_intout,_iooff

move.l #_ptsout,_pooff

move.l #_ptsin,_pioff

move.w _intout,d0

move.w #$0,_int_in

bsr graf_mou

move.l #endtree,d0

sub.l #tree_1,d0

lea tree_1,a1

move.w cell_h,d2

move.w cell_w,d1

more_ob:

H1856:

move.w $10(a1),d4

mulu d1,d4

move.w d4,$10(a1)

move.w $12(a1),d4

mulu d2,d4

move.w d4,$12(a1)

move.w $14(a1),d4

mulu d1,d4

move.w d4,$14(a1)

move.w $16(a1),d4

mulu d2,d4

move.w d4,$16(a1)

adda.l #$18,a1

subi.l #$18,d0

bne more_ob

begin:

H188C:

clr.w fil_but

clr.w mem_but

clr.w x_sym

clr.w db_set

lea tree_1,a1

bsr form_ce

move.w #$0,_int_in

bsr form_di

move.w #$1,_int_in

bsr form_di

move.l a1,_addr_in

clr.w _int_in

move.w #$1,H4B20

bsr obj_dr

move.l a1,_addr_in

move.w #$FFFF,_int_in

bsr form_do

move.w d0,fil_mem

move.w #$2,_int_in

bsr form_di

move.w #$3,_int_in

bsr form_di

cmpi.w #$2,fil_mem

beq fsel_in

cmpi.w #$3,fil_mem

beq its_mem

subq.w #4,fil_mem

move.w #$5,_contrl

clr.w H4B54

clr.w H4B58

move.w #$13,H4B5C

bsr vdi_it

pea caveats

move.w #$9,-(a7)

trap #$1

addq.l #6,a7

move.w #$1,-(a7)

trap #$1

addq.l #2,a7

bsr v_clsvw

jsr exit

its_mem:

H196A:

clr.w x_ok

clr.w x_cancel

lea tree_2,a1

bsr form_ce

move.w #$0,_int_in

bsr form_di

move.l a1,_addr_in

clr.w _int_in

move.w #$1,H4B20

bsr obj_dr

move.l a1,_addr_in

move.w #$1,_int_in

bsr form_do

move.w d0,d6

move.w #$3,_int_in

bsr form_di

subq.w #4,d6

beq begin

lea mem_1st,a0

bsr mem_hex

bmi mem_err

bclr #$0,d0

move.l d0,m_start

lea mem_2nd,a0

bsr mem_hex

bmi mem_err

bclr #$0,d0

move.l d0,m_stop

cmp.l m_start,d0

bpl choices

move.l #arith,_addr_in

bsr fm_alert

bra its_mem

mem_err:

H1A10:

move.l #alert,_addr_in

bsr fm_alert

bra its_mem

fsel_in:

H1A22:

move.l #directry,_addr_in

move.l #filenm,H4B6E

move.w #$5A,_control

move.l #$2,H4B18

move.l #$20000,H4B1C

bsr aes_it

beq aes_err

tst.w H4B40

beq begin

choices:

H1A64:

lea tree_3,a1

cmpi.w #$3,fil_mem

bne keepall

move.w #$80,x_sym

move.w #$80,db_set

keepall:

H1A84:

move.b directry,d_drive

bsr form_ce

move.w #$0,_int_in

bsr form_di

move.l a1,_addr_in

clr.w _int_in

move.w #$2,H4B20

bsr obj_dr

move.l a1,_addr_in

move.w #$B,_int_in

bsr form_do

move.w d0,d6

move.w #$3,_int_in

bsr form_di

clr.b twice_

subq.w #2,d6

beq begin

subq.b #1,sym_no

neg.b sym_no

lea tree_4,a1

bsr form_ce

move.w #$0,_int_in

bsr form_di

move.l a1,_addr_in

clr.w _int_in

move.w #$1,H4B20

bsr obj_dr

move.w #$3,_int_in

rts

v_clsvw:

H1B24:

move.w #$65,_contrl

clr.w H4B54

clr.w H4B58

bsr vdi_it

appl_ex:

H1B3C:

move.w #$13,_control

move.l #$1,H4B18

clr.l H4B1C

bsr aes_it

rts

What programming language on the ST is this : and what will load it ????

Especially the compiler: Russ


Next time, consider attaching the file instead?
Ain't no space like PeP-space.

User avatar
catmando
Atari Super Hero
Atari Super Hero
Posts: 963
Joined: Tue Jan 24, 2006 9:56 pm
Location: London, UK

Re: Atari ST Diagnostic Disk (Heavily Protected)

Postby catmando » Sun Sep 02, 2018 8:14 am

rcamp48 wrote:I have an Original of my Atari ST Diagnostics Disk, I have used a disassembly program in e public domain to produce source code for it, my original went bad months ago, it was made by PCA Progressive Computer Applications, I have an old backup that will not run but has the complete program on it. The program I used was DISASM_2.PRG has anyone heard of it, come with the ST Protection Techniques disc, The Protector, as a public domain file. Here is a sample of the code produced:

********

* This is a disassembly of file

* DISASM_2.PRG

* which is comprised of

*

* TEXT Hex bytes DATA Hex bytes BSS Hex bytes

* 2BA4 126C E18

*

* in continuous format.

*

* Total PROGRAM bytes: 4C28 H Total FILE bytes: 657F H

*

********


.text

movea.l a7,a5

movea.l #grafix,a7

movea.l $4(a5),a5

move.l $C(a5),d0

add.l $14(a5),d0

add.l $1C(a5),d0

add.l #$100,d0

move.l d0,-(a7)

move.l a5,-(a7)

bsr mshrink

bsr dgetdrv

add.b #$41,d0

move.b d0,directry

jsr window

lea flstats,a1

move.w fil_mem,d0

bmi int_abt

move.b s_head,H

cmpi.w #$2,d0

beq dodafile

subq.w #3,fil_mem

bsr ssp_on

move.l m_stop,d3

move.l m_start,d2

move.l d3,d0

sub.l d2,d0

move.l d0,$2(a1)

move.l d0,$58(a1)

st prgtype

move.l d0,$34(a1)

bsr setbuf

move.l d0,$44(a1)

move.l a0,$38(a1)

move.l m_start,d2

move.l d2,address

move.l d2,prior

move.l d2,d0

jsr displc

bsr headsin

lea holdbuf,a0

movea.l a1,a2

adda.l #$28,a2

move.l holdcnt,d0

subq.l #2,d0

addq.l #1,a0

mem_name:

HCA:

move.b (a0)+,(a2)+

dbeq d0,mem_name

move.b #$2E,(a2)+

lea dis,a0

m_disit:

HDA:

move.b (a0)+,(a2)+

bne m_disit

clr.l holdcnt

bra on6

dodafile:

HE8:

clr.l m_start

lea directry,a0

lea filenm,a2

moveq #$25,d1

fill_dir:

HFC:

move.b $0(a0,d1.l),d0

dbne d1,fill_dir

subq.l #1,d1

bmi bad_dir

cmpi.b #$5C,d0

bne fill_dir

addq.l #2,d1

adda.l d1,a0

dir_dun:

H112:

move.b (a2)+,d0

move.b d0,(a0)+

bne dir_dun

clr.w -(a7)

pea directry

bsr fopen

move.w d0,handle

pea flstats

addi.l #$A,(a7)

move.w #$1A,-(a7)

trap #$1

addq.l #6,a7

move.w #$37,-(a7)

pea directry

move.w #$4E,-(a7)

trap #$1

addq.l #8,a7

tst.l d0

beq found

bad_dir:

H154:

move.l #unfound,_addr_in

bra peel_out

found:

H162:

lea dis,a6

movea.l a1,a0

adda.l #$28,a0

periods:

H170:

cmpi.b #$2E,(a0)+

bne periods

move.b (a0),d0

lsl.l #8,d0

move.b $1(a0),d0

lsl.l #8,d0

move.b $2(a0),d0

lsl.l #8,d0

disit:

H186:

move.b (a6)+,(a0)+

bne disit

lea prgtype,a0

lea prgtype,a2

move.w (a2)+,d2

cmp.l otype,d0

bne noto

lea otype,a0

bra iso_prg

noto:

H1A8:

cmp.l (a2)+,d0

dbeq d2,noto

tst.w d2

bpl iso_prg

move.b #$FF,rsctype

move.l #notprg,_addr_in

jsr fm_alert

move.w #$3,_int_in

clr.l $12(a1)

cmpi.b #$2,d0

beq on6

jsr form_di

bra abort

iso_prg:

H1E8:

st (a0)

pea flstats

move.l #$24,-(a7)

move.w handle,-(a7)

bsr fread

move.l $2(a1),d0

add.l $6(a1),d0

move.l d0,$58(a1)

cmpi.w #$601A,flstats

bne on2

moveq #$1C,d0

move.l d0,$16(a1)

move.l d0,diskcnt

add.l $2(a1),d0

move.l d0,$1C(a1)

add.l $6(a1),d0

move.l d0,$20(a1)

subi.l #$1C,d0

bra on3

on2:

H23A:

cmpi.w #$601B,flstats

beq on210

move.l #unkprg,_addr_in

bra peel_out

on210:

H252:

lea cont,a0

lea non,a2

moveq #$3,d0

on225:

H260:

move.b (a2)+,(a0)+

dbf d0,on225

tst.l $16(a1)

bne on25

move.l #$24,$16(a1)

on25:

H274:

move.l $2(a1),d0

add.l $6(a1),d0

on3:

H27C:

add.l $A(a1),d0

move.l d0,$34(a1)

bsr headsin

move.l $2(a1),d0

lea setbuf,a0

tst.b prgtype

bmi get_lab

lea osetbuf,a0

get_lab:

H2A0:

jsr (a0)

move.l d0,$44(a1)

move.l a0,$38(a1)

clr.w -(a7)

move.w handle,-(a7)

move.l $20(a1),-(a7)

bsr fseek

tst.l $E(a1)

beq on4

move.l $E(a1),-(a7)

bsr malloc

move.l d0,$40(a1)

move.l d0,-(a7)

move.l $E(a1),-(a7)

move.w handle,-(a7)

bsr fread

on4:

H2DC:

tst.w $1A(a1)

bne prewant

move.l $24(a1),d0

sub.l $2(a1),d0

sub.l $6(a1),d0

sub.l #$1C,d0

cmpi.w #$601A,flstats

beq itscont

subq.l #8,d0

itscont:

H302:

sub.l $E(a1),d0

move.l d0,-(a7)

move.l d0,$12(a1)

bsr malloc

move.l d0,$3C(a1)

move.l d0,-(a7)

move.l $12(a1),-(a7)

move.w handle,-(a7)

bsr fread

movea.l $3C(a1),a2

movea.l $38(a1),a3

tst.b prgtype

bmi its_prg

move.l $2(a1),d3

moveq #$0,d2

fillrel:

H33C:

move.w (a2)+,d0

beq niktrel

cmpi.w #$6,d0

bpl niktrel

move.w (a2)+,d0

beq isabs

andi.b #$7,d0

addq.b #2,d0

move.b d0,$0(a3,d2.l)

cmpi.b #$6,d0

bne isabs

move.w $FFFE(a2),d0

lsr.w #3,d0

move.w d0,$2(a3,d2.l)

isabs:

H364:

addq.l #2,d2

niktrel:

H366:

addq.l #2,d2

cmp.l d3,d2

bmi fillrel

movea.l #$0,a6

tst.w db_enabl

beq o_d_

move.l $12(a1),d3

sub.l $2(a1),d3

beq o_d_

movea.l $3C(a1),a6

movea.l $3C(a1),a2

adda.l $2(a1),a2

moveq #$0,d2

filreld:

H392:

move.w (a2)+,d0

beq nidtrel

cmpi.w #$6,d0

bpl nidtrel

move.w (a2)+,d0

beq disabs

andi.w #$7,d0

addq.w #2,d0

_nohold:

H3A6:

cmpi.w #$100,d2

bmi nohold_

subi.w #$FE,d2

move.b #$1,(a6)+

bra _nohold

nohold_:

H3B6:

move.b d2,(a6)+

moveq #$0,d2

move.b d0,(a6)+

cmpi.b #$6,d0

bne disabs

move.b $FFFF(a2),d0

lsr.b #3,d0

move.b d0,(a6)+

move.b $FFFE(a2),d0

lsr.b #3,d0

move.b d0,(a6)+

disabs:

H3D2:

addq.l #2,d2

subq.l #2,d3

nidtrel:

H3D6:

addq.l #2,d2

subq.l #2,d3

bhi filreld

clr.b $1(a6)

suba.l $3C(a1),a6

addq.l #1,a6

o_d_:

H3E6:

move.l a6,$12(a1)

move.l a6,-(a7)

move.l $3C(a1),-(a7)

bsr mshrink

move.l $12(a1),d0

beq p_nidrel

addq.l #1,d0

move.l d0,$12(a1)

p_nidrel:

H400:

move.l $E(a1),d5

beq prewant

movea.l $40(a1),a2

movea.l $38(a1),a3

move.l $2(a1),d3

move.l $6(a1),d4

moveq #$0,d2

relsymb:

H41A:

move.w $8(a2,d2.l),d0

move.l $A(a2,d2.l),d1

btst #$C,d0

bne norels

btst #$E,d0

bne norels

btst #$B,d0

bne norels

btst #$9,d0

beq no_labl

move.b #$2,$0(a3,d1.l)

bra norels

no_labl:

H442:

add.l d3,d1

btst #$A,d0

bne rels

add.l d4,d1

rels:

H44C:

move.l d1,$A(a2,d2.l)

norels:

H450:

addi.l #$E,d2

cmp.l d5,d2

bmi relsymb

bra prewant

its_prg:

H45E:

moveq #$0,d5

move.l (a2)+,d3

move.l d3,d7

move.l $2(a1),d6

move.b d3,d4

asr.l #4,d3

asl.l #1,d3

adda.l d3,a3

andi.l #$F,d4

move.l d4,d3

rel_def:

H478:

move.b d4,d3

addq.b #1,d4

bset d4,d5

moveq #$0,d2

firstly:

H480:

moveq #$0,d1

move.b (a2)+,d1

beq on0

cmpi.b #$1,d1

bne lastly

addi.l #$FE,d2

bra firstly

lastly:

H494:

add.l d2,d1

add.l d1,d7

cmp.l d6,d7

bpl on0

move.b d1,d4

asr.l #4,d1

asl.l #1,d1

beq notover

move.w d5,(a3)

moveq #$0,d5

adda.l d1,a3

notover:

H4AA:

andi.l #$F,d4

add.b d3,d4

bclr #$4,d4

beq rel_def

move.w d5,(a3)+

moveq #$0,d5

bra rel_def

on0:

H4BE:

move.w d5,(a3)

movea.l #$0,a6

tst.w db_enabl

beq relc_d

tst.b $FFFF(a2)

beq relc_d

movea.l $3C(a1),a6

sub.l $2(a1),d7

cmpi.l #$100,d7

bmi tinyd_1

p_tinyd:

H4E4:

cmpi.l #$100,d7

bmi tiny_d

move.b #$1,(a6)+

subi.l #$FE,d7

cmpi.l #$100,d7

bpl p_tinyd

tinyd_1:

H4FE:

move.b d7,(a6)+

tiny_d:

H500:

move.b (a2)+,(a6)+

bne tiny_d

suba.l $3C(a1),a6

addq.l #1,a6

move.l $E(a1),d0

beq relc_d

movea.l $38(a1),a3

moveq #$9,d3

moveq #$0,d7

movea.l #$1,a4

bsr setsym

relc_d:

H522:

move.l a6,$12(a1)

move.l a6,-(a7)

move.l $3C(a1),-(a7)

bsr mshrink

prewant:

H530:

tst.l $6(a1)

beq no_data

move.l $6(a1),d0

bsr setbuf

move.l d0,$4C(a1)

move.l a0,$48(a1)

move.l $E(a1),d0

beq no_data

move.l $2(a1),d7

movea.l $48(a1),a3

moveq #$A,d3

suba.l a4,a4

bsr setsym

no_data:

H55C:

tst.l $A(a1)

beq on6

move.l $A(a1),d0

bsr setbuf

move.l d0,$54(a1)

move.l a0,$50(a1)

move.l $E(a1),d0

beq on6

move.l $34(a1),d7

sub.l $A(a1),d7

movea.l $50(a1),a3

moveq #$8,d3

suba.l a4,a4

bsr setsym

on6:

H58C:

move.l #$FFFFFFFF,-(a7)

bsr malloc

move.l d0,d3

move.l d0,-(a7)

bsr malloc

move.l d0,bigbuff

lea buffy,a0

move.l d0,(a0)

move.l d0,$4(a0)

lsr.l #2,d3

bclr #$0,d3

move.l d3,d2

add.l d3,d2

add.l d2,$4(a0)

move.l d3,county

move.l d2,bbcount

move.l d2,bcount

tst.w fil_mem

bne bigslop

move.l m_start,bigbuff

move.l d2,county

moveq #$0,d2

moveq #$0,d3

move.l $2(a1),bbcount

move.l $2(a1),bcount

bigslop:

H5FC:

add.l d2,(a0)

add.l d3,$4(a0)

tst.b rsctype

bpl not_rsc

move.l $24(a1),d0

move.l d0,$6(a1)

clr.l $A(a1)

clr.l $2(a1)

bsr headsin

move.l d0,$2(a1)

move.l d0,$34(a1)

clr.l $16(a1)

clr.l $1C(a1)

not_rsc:

H62E:

move.l $2(a1),stopit

tst.w fil_mem

bne fil_bag

movea.l bigbuff,a4

move.l m_stop,stopit

bra qtime_1

fil_bag:

H650:

clr.w -(a7)

move.w handle,-(a7)

move.l $16(a1),-(a7)

bsr fseek

move.l #$0,address

bsr bigread

qtime_1:

H66E:

clr.w -(a7)

lea outdisk,a0

move.b d_drive,(a0)+

move.b #$3A,(a0)+

move.b #$5C,(a0)+

movea.l a1,a2

adda.l #$28,a2

moveq #$B,d0

pre_crat:

H68E:

move.b (a2)+,(a0)+

dbeq d0,pre_crat

pea outdisk

move.w #$3C,-(a7)

trap #$1

addq.l #8,a7

tst.l d0

bpl created

move.l #badcrat,_addr_in

bra peel_out

created:

H6B4:

move.w d0,handlef

move.l county,d3

move.l d3,tinycnt

lea buffy,a2

adda.l current,a2

movea.l (a2),a2

tst.b rsctype

bmi stfhead

move.w #$700,sym_flag

bra addr_0

back1:

H6E8:

move.l address,d0

sub.l prior,d0

move.l address,prior

neg.b d0

move.b d0,holdbuf

addq.l #1,holdcnt

addr_0:

H70C:

jsr extendw

lea jump1,a0

move.w d1,d0

rol.w #4,d0

andi.w #$F,d0

asl.w #2,d0

movea.l $0(a0,d0.w),a0

jsr (a0)

move.l tinycnt,d3

tst.b wantw

beq nowant

lea holdbuf,a6

adda.l holdcnt,a6

move.b tabsit,(a6)+

move.b tabsit,(a6)+

move.b aster,(a6)+

addq.l #3,holdcnt

pea hexcmmd

jsr holdit

lea hexcmmd,a0

move.w hexcunt,d0

mulu #$5,d0

clrxy:

H776:

clr.b (a0)+

dbf d0,clrxy

clr.w hexcunt

nowant:

H782:

lea holdbuf,a6

move.l holdcnt,d7

subq.l #1,d7

bsr stuffit

clr.l holdcnt

move.l d3,tinycnt

move.l address,d0

cmp.l stopit,d0

bmi back1

move.b #$FF,(a2)

subq.l #1,d3

btst #$0,d3

beq eq_stuf

subq.l #1,d3

clr.b $1(a2)

eq_stuf:

H7C2:

bsr stuff

move.l txtwrit,total

lea flstats,a1

move.l txtwrit,stopit

move.l #$0,txtwrit

move.l #$0,address

tst.w fil_mem

bne stf_fil

lea buffy,a0

move.l (a0),bigbuff

move.l $4(a0),(a0)

move.l county,d0

move.l d0,bbcount

move.l d0,bcount

lsr.l #1,d0

bclr #$0,d0

move.l d0,county

add.l d0,$4(a0)

lea buffy,a2

adda.l current,a2

movea.l (a2),a2

stf_fil:

H83C:

move.l county,d3

movea.l $38(a1),a3

moveq #$FF,d4

move.l $44(a1),d5

bsr preread

stfhead:

H850:

lea header,a6

moveq #$FF,d7

stuffs:

H858:

move.b (a6)+,d0

bmi chktex

addq.l #1,d7

bra stuffs

chktex:

H860:

lea header,a6

bsr stuffit

tst.b rsctype

bmi do_data

tst.b sym_no

beq x_symtab

move.l $E(a1),d6

bne z_symtab

lea nict_sym,a6

move.b (a6)+,d7

andi.l #$FF,d7

bsr stuffit

bra x_symtab

z_symtab:

H89A:

movea.l $40(a1),a1

add.l a1,d6

pea pre_ty

jsr holdit

lea holdbuf,a6

move.l holdcnt,d7

subq.l #1,d7

bsr stuffit

agin_ty:

H8BE:

move.l #$A0D2A09,holdbuf

move.l #$4,holdcnt

move.l a1,-(a7)

move.w $8(a1),d1

clr.w $8(a1)

jsr holdit

pea spaces

jsr holdit

move.w d1,$8(a1)

lea labtype,a6

moveq #$0,d0

moveq #$7,d7

may_ty:

H8FC:

asl.w #1,d1

bcc no_ty

move.l $0(a6,d0.l),-(a7)

jsr holdit

no_ty:

H90A:

addq.l #4,d0

dbf d7,may_ty

pea spaces

jsr holdit

move.l $A(a1),d0

jsr displc

adda.l #$E,a1

lea holdbuf,a6

move.l holdcnt,d7

subq.l #1,d7

bsr stuffit

cmpa.l d6,a1

bmi agin_ty

lea tail,a6

moveq #$7,d7

bsr stuffit

lea flstats,a1

clr.l holdcnt

x_symtab:

H95C:

tst.l $2(a1)

beq do_data

lea textlin,a6

moveq #$A,d7

bsr stuffit

lea holdbuf,a6

move.l holdcnt,d7

moveq #$0,d0

clr.l prior

move.w #$200,sym_flag

move.l $44(a1),labcunt

tst.b prgtype

bpl gogetlb

moveq #$FE,d4

move.w #$8,d5

swap d5

move.w (a3),d5

gogetlb:

H9A6:

tst.l labcunt

beq dissymb

bsr getlabs

addrchk:

H9B2:

cmp.l d0,d4

bmi gogetlb

bhi dissymb

add.l m_start,d0

bsr sym_stor

move.b holdbuf,d1

cmp.b H,d1

beq no_doub

move.b #$A,(a6)+

move.b #$D,(a6)+

addq.l #2,holdcnt

moveq #$1,d1

bsr sym_stor

no_doub:

H9E4:

clr.l holdcnt

sub.l m_start,d0

bsr getlabs

move.b #$A,(a6)+

move.b #$D,(a6)+

addq.l #2,d7

dissymb:

H9FE:

move.b tabsit,(a6)+

addq.l #1,d7

chkline:

HA06:

move.b (a4)+,(a6)+

bmi no_byte

addq.l #1,d7

subq.l #1,d2

bne chkline

bsr preread

bra chkline

no_byte:

HA16:

move.b $FFFF(a6),d0

neg.b d0

andi.l #$FF,d0

add.l prior,d0

move.l d0,prior

move.b #$A,$FFFF(a6)

move.b #$D,(a6)

lea holdbuf,a6

addq.l #1,d7

bsr stuffit

btst #$0,d0

bne endlabs

subq.l #1,d2

bne noload

move.l bcount,d7

sub.l d2,d7

add.l stopper,d7

cmp.l stopit,d7

beq endlabs

move.l bcount,d7

add.l d7,stopper

bsr preread

noload:

HA74:

lea holdbuf,a6

clr.l holdcnt

moveq #$0,d7

bra addrchk

endlabs:

HA86:

btst #$0,d3

beq eq_labs

subq.l #1,d3

move.b spaces,(a2)

eq_labs:

HA94:

bsr stuff

clr.l holdcnt

tst.w fil_mem

beq alldone

do_data:

HAA8:

lea flstats,a1

move.l $16(a1),d0

move.l $1C(a1),d4

move.l d4,diskcnt

move.l $6(a1),d5

move.l d5,stopit

sub.l d0,d4

tst.l d5

beq outdata

tst.b rsctype

bmi dat_lin

clr.w -(a7)

move.w handle,-(a7)

move.l diskcnt,-(a7)

bsr fseek

move.l #$0,address

bsr bigread

add.l d2,address

move.l d2,bcount

dat_lin:

HB02:

move.w #$400,sym_flag

lea datalin,a6

moveq #$B,d7

bsr stuffit

lea holdbuf,a6

moveq #$0,d7

movea.l #$0,a5

tst.b rsctype

bmi do_1st

n_rsc:

HB2C:

movea.l $48(a1),a3

move.l d4,d0

subq.l #1,d0

moveq #$10,d6

swap d6

move.w (a3),d6

btst #$1,d6

bne do_1st

bset #$0,d6

do_1st:

HB44:

move.l $4C(a1),labcunt

bsr get_db

tst.l $12(a1)

bne do_1sto

move.l #$FFFFFFFF,$12(a1)

bra datseek

do_1sto:

HB60:

bsr get_relc

datseek:

HB64:

move.w #$A0D,holdbuf

move.l #$2,holdcnt

bsr sym_stor

lea holdbuf,a0

move.b $2(a0),d1

cmp.b H,d1

beq x_doub

move.b #$A,(a6)+

move.b #$D,(a6)+

addq.l #2,holdcnt

moveq #$1,d1

bsr sym_stor

x_doub:

HBA0:

bsr get_db

clr.l holdcnt

lea holdbuf,a6

movea.w d1,a5

subq.l #1,d7

bmi dun_sym

seekdat:

HBB6:

bsr stuffit

lea holdbuf,a6

dun_sym:

HBC0:

moveq #$8,d7

lea dcbtab,a0

tab_1:

HBC8:

move.b (a0)+,(a6)+

dbf d7,tab_1

tst.l $12(a1)

bne not_rad

move.b #$6C,$FFFE(a6)

move.l d0,-(a7)

move.w sym_flag,-(a7)

move.w #$700,sym_flag

moveq #$2,d1

moveq #$3,d7

moveq #$0,d0

rol_rad:

HBF2:

rol.l #8,d0

move.b (a4)+,d0

subq.l #1,d5

subq.l #1,d2

bhi droll_rd

tst.l d5

ble droll_rd

bsr bigread

add.l d2,address

move.l d2,bcount

droll_rd:

HC10:

dbf d7,rol_rad

addq.l #4,d4

move.l #$9,holdcnt

tst.b prgtype

bmi pnot_rad

move.b d_rlflag,d1

cmpi.b #$6,d1

bne pnot_rad

pea pyes_rad

movem.l d0-d2/d6/a0,-(a7)

move.l $E(a1),d7

movea.l $40(a1),a0

move.w d_rlsym,d6

bra o_symb

pnot_rad:

HC50:

bsr sym_stor

pyes_rad:

HC54:

move.l holdcnt,d7

lea holdbuf,a6

subq.b #2,d7

bsr get_relc

subq.l #4,$12(a1)

move.w (a7)+,sym_flag

move.l (a7)+,d0

bsr stuffit

lea holdbuf,a6

tst.l d5

beq endat_rl

cmp.l d0,d4

bne dun_sym

bra datseek

not_rad:

HC8C:

moveq #$3F,d7

move.b (a4),d1

cmpi.b #$20,d1

bmi its_num

cmpi.b #$7F,d1

bpl its_num

is_spc:

HCA0:

move.b apost,(a6)+

subq.b #1,d7

aph_now:

HCA8:

move.b d1,(a6)+

addq.l #1,a4

addq.l #1,d4

subq.l #1,d5

bhi no_apend

move.b apost,(a6)+

subq.b #2,d7

bra endata

no_apend:

HCBE:

subq.l #1,d2

bhi read_ap

bsr bigread

add.l d2,address

move.l d2,bcount

read_ap:

HCD2:

subq.b #1,d7

bne pre_new

moveq #$48,d7

move.b apost,(a6)+

lea holdbuf,a6

subq.l #1,$12(a1)

bra seekdat

pre_new:

HCEC:

subq.l #1,$12(a1)

beq xaph_rl

cmp.l d0,d4

bne more_ap

xaph_rl:

HCF6:

move.b apost,(a6)+

subq.b #1,d7

new_sym:

HCFE:

subi.l #$47,d7

neg.l d7

lea holdbuf,a6

bsr stuffit

lea holdbuf,a6

moveq #$0,d7

tst.b rsctype

bmi datseek

move.w a5,d1

beq dun_sym

cmp.l d0,d4

beq datseek

bra dun_sym

more_ap:

HD32:

move.b (a4),d1

cmpi.b #$20,d1

bpl qury_ap

bra not_ap

qury_ap:

HD3C:

cmpi.b #$7F,d1

bmi aph_now

not_ap:

HD44:

move.b apost,(a6)+

subq.b #1,d7

cmpi.b #$4,d7

bmi no_room

move.b comma,(a6)+

subq.b #1,d7

its_num:

HD5A:

lea hexlab,a0

numagin:

HD60:

andi.w #$FF,d1

ror.l #4,d1

move.b hex,(a6)+

move.b $0(a0,d1.w),(a6)+

rol.l #4,d1

andi.b #$F,d1

move.b $0(a0,d1.w),(a6)+

subq.b #3,d7

addq.l #1,a4

addq.l #1,d4

subq.l #1,d5

beq endata

subq.l #1,d2

bhi read_nm

bsr bigread

add.l d2,address

move.l d2,bcount

read_nm:

HD98:

subq.l #1,$12(a1)

beq new_sym

cmp.l d0,d4

beq new_sym

cmpi.b #$4,d7

bmi no_room

move.b comma,(a6)+

subq.l #1,d7

move.b (a4),d1

cmpi.b #$20,d1

bmi numagin

cmpi.b #$7F,d1

bpl numagin

bra is_spc

no_room:

HDC6:

subi.l #$47,d7

neg.l d7

lea holdbuf,a6

bra seekdat

endata:

HDD8:

subi.l #$47,d7

neg.l d7

lea holdbuf,a6

bsr stuffit

endat_rl:

HDEA:

btst #$0,d3

beq eq_end

subq.l #1,d3

move.b spaces,(a2)

eq_end:

HDF8:

bsr stuff

outdata:

HDFC:

tst.b rsctype

bmi alldone

clr.b savew

tst.l $A(a1)

beq alldone

move.l $58(a1),d4

lea bsslin,a6

moveq #$A,d7

movea.l $50(a1),a3

move.l d4,d0

subq.l #1,d0

moveq #$10,d6

swap d6

move.w (a3),d6

bset #$0,d6

move.l $54(a1),labcunt

move.w #$100,sym_flag

bsr get_db

bsseek:

HE46:

bsr stuffit

move.w #$A0D,holdbuf

move.l #$2,holdcnt

bsr sym_stor

lea holdbuf,a0

move.b $2(a0),d1

cmp.b H,d1

beq z_doub

move.b #$A,(a6)+

move.b #$D,(a6)+

addq.l #2,holdcnt

moveq #$1,d1

bsr sym_stor

z_doub:

HE86:

lea dsbtab,a0

moveq #$8,d5

dobssln:

HE8E:

move.b (a0)+,(a6)+

dbf d5,dobssln

addi.l #$9,d7

move.l d7,holdcnt

bsr get_db

tst.l labcunt

beq bssend

move.l d0,d5

sub.l d4,d0

jsr displc

move.l d5,d0

move.l d5,d4

lea holdbuf,a6

move.l holdcnt,d7

subq.l #1,d7

bra bsseek

bssend:

HECC:

move.l $34(a1),d0

sub.l d4,d0

jsr displc

lea holdbuf,a6

move.l holdcnt,d7

subq.l #1,d7

bsr stuffit

alldone:

HEEA:

lea endlin,a6

moveq #$9,d7

bsr stuffit

btst #$0,d3

beq all_end

subq.l #1,d3

move.b spaces,(a2)

all_end:

HF04:

bsr stuff

move.l txtwrit,d0

sub.l total,d0

move.l d0,total

move.w handlef,-(a7)

bsr fclose

int_abt:

HF24:

bsr ssp_off

jsr form_di

tst.w fil_mem

beq abort

move.w handle,-(a7)

bsr fclose

abort:

HF40:

jsr v_clsvw

jsr exit

sgetlab:

HF4C:

move.l (a7)+,saveptr

move.w (a7)+,savew

movem.l d1-d7/a0-a1/a3,-(a7)

lea flstats,a1

move.l address,d4

movea.l $38(a1),a3

movea.l $40(a1),a0

move.w savew,d1

beq get

ext.l d1

tst.b size

beq itsbyte

subq.l #2,d4

itsbyte:

HF86:

add.l d1,d4

move.l d4,d0

tst.b prgtype

bpl set_68k

moveq #$1,d1

sub.l m_start,d4

bsr rollbit

addq.b #1,d5

btst d5,d6

beq no_resy

addq.b #1,d1

no_resy:

HFA6:

bsr sym_stor

move.l d0,d4

sub.l m_start,d4

bsr disc_lb

beq ugly

bra set_hit

set_68k:

HFBC:

cmp.l $2(a1),d4

bmi pre_68k

bsr disc_lb

beq ugly

bsr rollbit

moveq #$0,d1

bset d5,d6

beq zer0_68k

moveq #$1,d1

zer0_68k:

HFD6:

addq.b #1,d1

move.w d6,$0(a3,d4.l)

bra post_pre

pre_68k:

HFDE:

move.b $0(a3,d4.l),d1

bne post_pre

move.b #$1,$0(a3,d4.l)

moveq #$1,d1

post_pre:

HFEC:

bsr sym_stor

bra cleared

get:

HFF4:

tst.w fil_mem

beq ugly

subq.l #4,d4

tst.b prgtype

bpl x68k

bsr rollbit

addq.b #1,d5

btst d5,d6

beq ugly

moveq #$2,d1

bsr sym_stor

move.l d0,d4

bsr disc_lb

beq ugly

set_hit:

H1024:

bsr rollbit

bset d5,d6

move.w d6,$0(a3,d4.l)

bra cleared

x68k:

H1030:

move.b $0(a3,d4.l),d1

beq ugly

bsr sym_stor

cmpi.b #$6,d1

beq cleared

cmpi.b #$2,d1

beq cleared

move.l d0,d4

cmpi.b #$1,d1

beq ugly

cmpi.b #$4,d1

bne duo_bss

move.b $0(a3,d4.l),d1

bne cleared

move.b #$1,$0(a3,d4.l)

bra cleared

duo_bss:

H1062:

movea.l $48(a1),a3

cmpi.b #$5,d1

bne set_hit

movea.l $50(a1),a3

bra set_hit

cleared:

H1072:

subq.l #1,holdcnt

move.w #$0,savew

unclr:

H1080:

movem.l (a7)+,d1-d7/a0-a1/a3

move.w savew,-(a7)

move.l saveptr,-(a7)

rts

ugly:

H1092:

move.w #$FFFF,savew

bra unclr

disc_lb:

H109C:

movem.l d7,-(a7)

cmp.l $2(a1),d4

bmi lb_disc

move.l d4,d7

movea.l $48(a1),a3

sub.l $2(a1),d4

cmp.l $58(a1),d7

bmi lb_disc

sub.l $6(a1),d4

movea.l $50(a1),a3

cmp.l $34(a1),d7

bmi lb_disc

sub.l d7,d7

lb_disc:

H10C6:

movem.l (a7)+,d7

rts

rollbit:

H10CC:

move.l d4,d5

andi.l #$F,d5

asr.l #4,d4

asl.l #1,d4

move.w $0(a3,d4.l),d6

rts

getlabs:

H10DE:

tst.b prgtype

bmi glabprg

etlabs:

H10E6:

addq.l #1,d4

move.b (a3)+,d1

subq.l #1,d5

beq ahit

tst.b d1

beq etlabs

ahit:

H10F2:

rts

glabprg:

H10F4:

tst.l labcunt

beq ahit

moveq #$2,d1

move.w d5,d6

swap d5

bogart:

H1102:

addq.l #2,d4

subq.b #1,d5

bpl notbeg

addq.l #2,a3

move.w (a3),d6

move.b #$7,d5

subq.l #2,labcunt

beq ahit

notbeg:

H1118:

subq.b #1,d1

lsr.w #1,d6

bcc no_pseud

btst #$0,d6

beq bhit

no_pseud:

H1124:

addq.b #1,d1

lsr.w #1,d6

bcc bogart

bhit:

H112A:

swap d5

move.w d6,d5

rts

get_db:

H1130:

tst.l labcunt

beq z_hit

move.l d7,-(a7)

moveq #$1,d1

move.w d6,d7

swap d6

bacall:

H1140:

addq.l #1,d0

subq.b #1,d6

bpl no_beg

addq.l #2,a3

move.w (a3),d7

move.b #$F,d6

subq.l #2,labcunt

bne no_beg

move.l (a7)+,d7

z_hit:

H1158:

moveq #$0,d1

rts

no_beg:

H115C:

lsr.w #1,d7

bcc bacall

tst.l $E(a1)

beq db_hit

addq.b #1,d1

db_hit:

H1168:

swap d6

move.w d7,d6

move.l (a7)+,d7

rts

get_relc:

H1170:

movem.l d1-d2/a2,-(a7)

moveq #$0,d2

moveq #$0,d1

movea.l $3C(a1),a2

seek_rl:

H117C:

move.b (a2)+,d1

beq last_rl

cmpi.b #$1,d1

bne dun_rl

addi.l #$FE,d2

bra seek_rl

dun_rl:

H118E:

add.l d1,d2

tst.b otype

bpl no_flags

move.b (a2)+,d1

move.b d1,d_rlflag

cmpi.b #$6,d1

bne no_flags

move.b (a2)+,d1

rol.w #8,d1

move.b (a2)+,d1

move.w d1,d_rlsym

no_flags:

H11B2:

move.l d2,$12(a1)

move.l a2,$3C(a1)

movem.l (a7)+,d1-d2/a2

rts

last_rl:

H11C0:

cmp.l $6(a1),d5

beq dun_rl

move.l #$FFFFFFFF,$12(a1)

movem.l (a7)+,d1-d2/a2

rts

sym_stor:

H11D4:

movem.l d0-d2/d6/a0,-(a7)

cmpi.b #$1,d1

beq pseudo

bmi no_sy

move.l $E(a1),d7

beq pseudo

movea.l $40(a1),a0

moveq #$0,d6

cmpi.b #$2,d1

beq anosymb

cmpi.b #$4,d1

beq anosymb

cmpi.b #$6,d1

bne it_sun

move.w $2(a3,d4.l),d6

o_symb:

H1208:

mulu #$E,d6

bcc nott_ao

move.l #overflw,_addr_in

bra peel_out

it_sun:

H121C:

add.l $2(a1),d0

cmpi.b #$3,d1

beq anosymb

add.l $6(a1),d0

anosymb:

H122A:

cmp.l $A(a0,d6.l),d0

bne un_symb

move.w $8(a0,d6.l),d2

and.w sym_flag,d2

bne nott_ao

un_symb:

H123C:

addi.l #$E,d6

cmp.l d7,d6

bmi anosymb

moveq #$1,d1

bra pseudo

nott_ao:

H124A:

lea holdbuf,a6

move.l holdcnt,d7

adda.l d7,a6

lea $0(a0,d6.l),a0

moveq #$7,d6

stfsym:

H125E:

move.b (a0)+,d2

beq apres_s

move.b d2,(a6)+

addq.l #1,d7

dbf d6,stfsym

apres_s:

H126A:

move.l d7,holdcnt

cmpi.b #$6,d1

bne no_plus

tst.l d0

beq no_plus

move.b space,(a6)+

move.b plus,(a6)+

move.b space,(a6)+

addq.l #3,holdcnt

jsr displc

no_plus:

H1298:

lea holdbuf,a6

move.l holdcnt,d7

adda.l d7,a6

move.b colon,(a6)+

addq.l #1,d7

move.l d7,holdcnt

no_sy:

H12B4:

movem.l (a7)+,d0-d2/d6/a0

rts

pseudo:

H12BA:

move.w H,hex

jsr displc

move.w rehex,hex

bra no_plus

stuffy:

H12D6:

move.b (a6)+,d0

beq nonono

move.b d0,(a2)+

addq.l #1,d3

cmp.l county,d3

bmi notyt

move.l d3,tinycnt

bsr stuff

notyt:

H12F0:

dbf d7,stuffy

nonono:

H12F4:

rts

headsin:

H12F6:

movem.l d0/a0-a2,-(a7)

lea flstats,a1

move.l $34(a1),d0

lea progbyt,a2

bsr heads

move.l $A(a1),d0

lea bssbyt,a2

bsr heads

move.l $2(a1),d0

lea textbyt,a2

bsr heads

move.l $6(a1),d0

lea databyt,a2

bsr heads

move.l $24(a1),d0

lea filebyt,a2

bsr heads

bra endhead

heads:

H133E:

jsr binhex

lea dsplace,a0

moveq #$6,d0

lope:

H134C:

cmpi.b #$30,(a0)

bne roun

addq.l #1,a0

dbf d0,lope

roun:

H1358:

move.b (a0)+,(a2)+

bne roun

move.b spaces,-(a2)

rts

endhead:

H1364:

lea filenm,a0

lea headnam,a2

tst.w fil_mem

bne headend

lea hd_mem,a2

lea memory,a0

mem_nd:

H1384:

move.b (a0)+,(a2)+

bne mem_nd

move.b spaces,-(a2)

lea holdbuf,a0

addq.l #1,a0

lea headnam,a2

headend:

H139C:

move.b (a0)+,(a2)+

bne headend

move.b spaces,-(a2)

movem.l (a7)+,d0/a0-a2

rts

preread:

H13AC:

movem.l d0-d1/a0-a1,-(a7)

clr.w -(a7)

move.w handlef,-(a7)

move.l address,-(a7)

bsr fseek

move.l stopit,d0

sub.l address,d0

cmp.l bbcount,d0

bmi readata

move.l bbcount,d0

readata:

H13DC:

move.l bigbuff,-(a7)

move.l d0,-(a7)

move.w handlef,-(a7)

bsr fread

movea.l bigbuff,a4

add.l d0,address

move.l d0,bcount

move.l d0,d2

movem.l (a7)+,d0-d1/a0-a1

rts

bigread:

H1408:

movem.l d0-d1/a0-a1,-(a7)

move.l stopit,d0

sub.l address,d0

cmp.l bbcount,d0

bmi reedlot

move.l bbcount,d0

reedlot:

H1426:

move.l bigbuff,-(a7)

move.l d0,-(a7)

move.w handle,-(a7)

bsr fread

movea.l bigbuff,a4

add.l d0,diskcnt

move.l d0,d2

movem.l (a7)+,d0-d1/a0-a1

rts

stuffit:

H144C:

move.b (a6)+,(a2)+

subq.l #1,d3

bne notyet

bsr stuff

notyet:

H1454:

dbf d7,stuffit

rts

stuff:

H145A:

movem.l d0-d1/a0-a1,-(a7)

sub.l county,d3

neg.l d3

clr.w -(a7)

move.w handlef,-(a7)

move.l txtwrit,-(a7)

bsr fseek

lea buffy,a2

adda.l current,a2

movea.l (a2),a2

move.l a2,-(a7)

move.l d3,-(a7)

move.w handlef,-(a7)

bsr fwrite

subq.l #4,current

neg.l current

lea buffy,a2

adda.l current,a2

movea.l (a2),a2

add.l d3,txtwrit

move.l county,d3

movem.l (a7)+,d0-d1/a0-a1

rts

setbuf:

H14C0:

asr.l #3,d0

addq.l #1,d0

osetbuf:

H14C4:

btst #$0,d0

beq is_even

addq.l #1,d0

is_even:

H14CC:

move.l d0,d3

move.l d0,-(a7)

bsr malloc

movea.l d0,a0

movea.l d0,a2

moveq #$0,d1

move.l d3,d0

subq.w #1,d3

clrbabs:

H14DE:

move.b d1,(a2)+

dbf d3,clrbabs

rts

setsym:

H14E6:

moveq #$0,d5

moveq #$0,d2

movea.l $40(a1),a2

symbs:

H14EE:

move.l $A(a2,d2.l),d4

move.w $8(a2,d2.l),d1

btst d3,d1

beq notrel

sub.l d7,d4

move.b d4,d6

asr.l #4,d4

asl.l #1,d4

move.w $0(a3,d4.l),d5

andi.l #$F,d6

add.w a4,d6

bset d6,d5

move.w d5,$0(a3,d4.l)

moveq #$0,d5

notrel:

H1516:

addi.l #$E,d2

cmp.l d0,d2

bmi symbs

rts

mshrink:

H1522:

move.l (a7)+,saveptr

clr.w -(a7)

move.w #$4A,-(a7)

trap #$1

adda.l #$C,a7

tst.l d0

beq freed

move.l #freerr,_addr_in

bra peel_out

freed:

H1548:

move.l saveptr,-(a7)

rts

fseek:

H1550:

move.l (a7)+,saveptr

move.w #$42,-(a7)

trap #$1

adda.l #$A,a7

tst.l d0

bpl freed

move.l #seekerr,_addr_in

bra peel_out

fread:

H1574:

move.l (a7)+,saveptr

move.w #$3F,-(a7)

trap #$1

adda.l #$C,a7

cmp.l $FFF8(a7),d0

bpl freed

move.l #badread,_addr_in

bra peel_out

fclose:

H159A:

move.l (a7)+,saveptr

move.w #$3E,-(a7)

trap #$1

addq.l #4,a7

tst.l d0

beq freed

move.l #badclos,_addr_in

bra peel_out

malloc:

H15B8:

move.l (a7)+,saveptr

move.w #$48,-(a7)

trap #$1

addq.l #6,a7

tst.l d0

bpl freed

move.l #badsymb,_addr_in

bra peel_out

fopen:

H15D8:

move.l (a7)+,saveptr

move.w #$3D,-(a7)

trap #$1

addq.l #8,a7

tst.l d0

bpl freed

move.l #badload,_addr_in

bra peel_out

fwrite:

H15F8:

move.l (a7)+,saveptr

move.w #$40,-(a7)

trap #$1

adda.l #$C,a7

cmp.l $FFF8(a7),d0

bpl freed

move.l #badwrit,_addr_in

peel_out:

H161C:

bsr ssp_off

jsr form_di

jsr fm_alert

bsr abort

dgetdrv:

H162E:

move.w #$19,-(a7)

trap #$1

addq.l #2,a7

rts

ssp_off:

H1638:

tst.l ssp

beq offed

move.l ssp,-(a7)

move.w #$20,-(a7)

trap #$1

addq.l #6,a7

offed:

H164E:

rts

ssp_on:

H1650:

tst.w fil_mem

bne offed

clr.l -(a7)

move.w #$20,-(a7)

trap #$1

addq.l #6,a7

move.l d0,ssp

rts

window:

H166A:

move.l #_contrl,pblock

move.l #_intin,_iioff

move.l #_ptsin,_pioff

move.l #_intout,_iooff

move.l #_ptsout,_pooff

_appl_in:

H169C:

move.l #_control,_c

move.l #_global,H46E4

move.l #_int_in,H46E8

move.l #_int_out,H46EC

move.l #_addr_in,H46F0

move.l #_addr_ou,H46F4

move.l #_c,_ad_c

move.w #$A,_control

move.l #$1,H4B18

clr.l H4B1C

bsr aes_it

bmi aes_err

graf_ha:

H1702:

move.w #$4D,_control

move.l #$5,H4B18

clr.l H4B1C

bsr aes_it

move.w d0,handle

move.w d0,H4B5E

move.w H4B40,cell_w

move.w H4B42,cell_h

v_opnvw:

H173E:

move.w #$64,_contrl

clr.w H4B54

move.w #$B,H4B58

move.w #$0,_intin

move.l #$10001,H42E2

move.l #$10001,H42E6

move.l #$10001,H42EA

move.l #$20001,H42EE

move.l #$10001,H42F2

clr.l H4AFE

clr.l H4B02

clr.l H4B06

clr.l H4B0A

clr.l H4B0E

clr.l H4B12

move.l #_intin,_iioff

move.l #_intout,_iooff

move.l #_intout,d0

add.l #$5A,d0

move.l d0,_pooff

bsr vdi_it

tst.w H4B5E

bne v_opned

move.l #vdierr,_addr_in

bsr fm_alert

move.w #$FFFF,fil_mem

bra v_clsvw

v_opned:

H17FE:

move.l #_intin,_iioff

move.l #_intout,_iooff

move.l #_ptsout,_pooff

move.l #_ptsin,_pioff

move.w _intout,d0

move.w #$0,_int_in

bsr graf_mou

move.l #endtree,d0

sub.l #tree_1,d0

lea tree_1,a1

move.w cell_h,d2

move.w cell_w,d1

more_ob:

H1856:

move.w $10(a1),d4

mulu d1,d4

move.w d4,$10(a1)

move.w $12(a1),d4

mulu d2,d4

move.w d4,$12(a1)

move.w $14(a1),d4

mulu d1,d4

move.w d4,$14(a1)

move.w $16(a1),d4

mulu d2,d4

move.w d4,$16(a1)

adda.l #$18,a1

subi.l #$18,d0

bne more_ob

begin:

H188C:

clr.w fil_but

clr.w mem_but

clr.w x_sym

clr.w db_set

lea tree_1,a1

bsr form_ce

move.w #$0,_int_in

bsr form_di

move.w #$1,_int_in

bsr form_di

move.l a1,_addr_in

clr.w _int_in

move.w #$1,H4B20

bsr obj_dr

move.l a1,_addr_in

move.w #$FFFF,_int_in

bsr form_do

move.w d0,fil_mem

move.w #$2,_int_in

bsr form_di

move.w #$3,_int_in

bsr form_di

cmpi.w #$2,fil_mem

beq fsel_in

cmpi.w #$3,fil_mem

beq its_mem

subq.w #4,fil_mem

move.w #$5,_contrl

clr.w H4B54

clr.w H4B58

move.w #$13,H4B5C

bsr vdi_it

pea caveats

move.w #$9,-(a7)

trap #$1

addq.l #6,a7

move.w #$1,-(a7)

trap #$1

addq.l #2,a7

bsr v_clsvw

jsr exit

its_mem:

H196A:

clr.w x_ok

clr.w x_cancel

lea tree_2,a1

bsr form_ce

move.w #$0,_int_in

bsr form_di

move.l a1,_addr_in

clr.w _int_in

move.w #$1,H4B20

bsr obj_dr

move.l a1,_addr_in

move.w #$1,_int_in

bsr form_do

move.w d0,d6

move.w #$3,_int_in

bsr form_di

subq.w #4,d6

beq begin

lea mem_1st,a0

bsr mem_hex

bmi mem_err

bclr #$0,d0

move.l d0,m_start

lea mem_2nd,a0

bsr mem_hex

bmi mem_err

bclr #$0,d0

move.l d0,m_stop

cmp.l m_start,d0

bpl choices

move.l #arith,_addr_in

bsr fm_alert

bra its_mem

mem_err:

H1A10:

move.l #alert,_addr_in

bsr fm_alert

bra its_mem

fsel_in:

H1A22:

move.l #directry,_addr_in

move.l #filenm,H4B6E

move.w #$5A,_control

move.l #$2,H4B18

move.l #$20000,H4B1C

bsr aes_it

beq aes_err

tst.w H4B40

beq begin

choices:

H1A64:

lea tree_3,a1

cmpi.w #$3,fil_mem

bne keepall

move.w #$80,x_sym

move.w #$80,db_set

keepall:

H1A84:

move.b directry,d_drive

bsr form_ce

move.w #$0,_int_in

bsr form_di

move.l a1,_addr_in

clr.w _int_in

move.w #$2,H4B20

bsr obj_dr

move.l a1,_addr_in

move.w #$B,_int_in

bsr form_do

move.w d0,d6

move.w #$3,_int_in

bsr form_di

clr.b twice_

subq.w #2,d6

beq begin

subq.b #1,sym_no

neg.b sym_no

lea tree_4,a1

bsr form_ce

move.w #$0,_int_in

bsr form_di

move.l a1,_addr_in

clr.w _int_in

move.w #$1,H4B20

bsr obj_dr

move.w #$3,_int_in

rts

v_clsvw:

H1B24:

move.w #$65,_contrl

clr.w H4B54

clr.w H4B58

bsr vdi_it

appl_ex:

H1B3C:

move.w #$13,_control

move.l #$1,H4B18

clr.l H4B1C

bsr aes_it

rts

What programming language on the ST is this : and what will load it ????

Especially the compiler: Russ


Most ridiculous post ever :shrug:
Atari Falcon Tos 4.04 | 14mb | IDE CF 2GB
Atari STE Tos 1.62 | 4mb | HxC Slim SD 8GB
Atari STE Tos 1.62/2.06 | 4mb | Floppy A-B Mod | IDE SD 4GB
Atari STFM
Android Devices (Running Hataroid and SToid)

Atari Forum Wiki - Use it before asking

Zippy
Captain Atari
Captain Atari
Posts: 153
Joined: Sun Feb 01, 2004 1:58 am

Re: Atari ST Diagnostic Disk (Heavily Protected)

Postby Zippy » Sun Sep 02, 2018 10:31 am

It's 68000 assembly language, or "assembler". It's not compiled it's assembled, by an assembler such as GenST.

Seemingly the file was assembled with the symbols hence it looks quite readable due to all the labels.

User avatar
mfro
Atari Super Hero
Atari Super Hero
Posts: 762
Joined: Thu Aug 02, 2012 10:33 am
Location: SW Germany

Re: Atari ST Diagnostic Disk (Heavily Protected)

Postby mfro » Sun Sep 02, 2018 10:36 am

Zippy wrote:It's 68000 assembly language, or "assembler". It's not compiled it's assembled, by an assembler such as GenST.

Seemingly the file was assembled with the symbols hence it looks quite readable due to all the labels.


From the file header comments, I would strongly assume he disassembled the disassembler. Might not be exactly what he wanted to do...

Zippy
Captain Atari
Captain Atari
Posts: 153
Joined: Sun Feb 01, 2004 1:58 am

Re: Atari ST Diagnostic Disk (Heavily Protected)

Postby Zippy » Sun Sep 02, 2018 10:40 am

^^ Ah, yes it does look like that. :)

User avatar
Gaiyan
Hardware Guru
Hardware Guru
Posts: 337
Joined: Tue Jun 29, 2004 3:39 pm
Contact:

Re: Atari ST Diagnostic Disk (Heavily Protected)

Postby Gaiyan » Sun Sep 02, 2018 11:44 am

catmando wrote:
rcamp48 wrote:I have an Original of my Atari ST Diagnostics Disk, I have used a disassembly program in e public domain to produce source code for it, my original went bad months ago, it was made by PCA Progressive Computer Applications, I have an old backup that will not run but has the complete program on it. The program I used was DISASM_2.PRG has anyone heard of it, come with the ST Protection Techniques disc, The Protector, as a public domain file. Here is a sample of the code produced:

********

* This is a disassembly of file

* DISASM_2.PRG

* which is comprised of

*

* TEXT Hex bytes DATA Hex bytes BSS Hex bytes

* 2BA4 126C E18

*

* in continuous format.

*

* Total PROGRAM bytes: 4C28 H Total FILE bytes: 657F H

*

********


.text

movea.l a7,a5

movea.l #grafix,a7

movea.l $4(a5),a5

move.l $C(a5),d0

add.l $14(a5),d0

add.l $1C(a5),d0

add.l #$100,d0

move.l d0,-(a7)

move.l a5,-(a7)

bsr mshrink

bsr dgetdrv

add.b #$41,d0

move.b d0,directry

jsr window

lea flstats,a1

move.w fil_mem,d0

bmi int_abt

move.b s_head,H

cmpi.w #$2,d0

beq dodafile

subq.w #3,fil_mem

bsr ssp_on

move.l m_stop,d3

move.l m_start,d2

move.l d3,d0

sub.l d2,d0

move.l d0,$2(a1)

move.l d0,$58(a1)

st prgtype

move.l d0,$34(a1)

bsr setbuf

move.l d0,$44(a1)

move.l a0,$38(a1)

move.l m_start,d2

move.l d2,address

move.l d2,prior

move.l d2,d0

jsr displc

bsr headsin

lea holdbuf,a0

movea.l a1,a2

adda.l #$28,a2

move.l holdcnt,d0

subq.l #2,d0

addq.l #1,a0

mem_name:

HCA:

move.b (a0)+,(a2)+

dbeq d0,mem_name

move.b #$2E,(a2)+

lea dis,a0

m_disit:

HDA:

move.b (a0)+,(a2)+

bne m_disit

clr.l holdcnt

bra on6

dodafile:

HE8:

clr.l m_start

lea directry,a0

lea filenm,a2

moveq #$25,d1

fill_dir:

HFC:

move.b $0(a0,d1.l),d0

dbne d1,fill_dir

subq.l #1,d1

bmi bad_dir

cmpi.b #$5C,d0

bne fill_dir

addq.l #2,d1

adda.l d1,a0

dir_dun:

H112:

move.b (a2)+,d0

move.b d0,(a0)+

bne dir_dun

clr.w -(a7)

pea directry

bsr fopen

move.w d0,handle

pea flstats

addi.l #$A,(a7)

move.w #$1A,-(a7)

trap #$1

addq.l #6,a7

move.w #$37,-(a7)

pea directry

move.w #$4E,-(a7)

trap #$1

addq.l #8,a7

tst.l d0

beq found

bad_dir:

H154:

move.l #unfound,_addr_in

bra peel_out

found:

H162:

lea dis,a6

movea.l a1,a0

adda.l #$28,a0

periods:

H170:

cmpi.b #$2E,(a0)+

bne periods

move.b (a0),d0

lsl.l #8,d0

move.b $1(a0),d0

lsl.l #8,d0

move.b $2(a0),d0

lsl.l #8,d0

disit:

H186:

move.b (a6)+,(a0)+

bne disit

lea prgtype,a0

lea prgtype,a2

move.w (a2)+,d2

cmp.l otype,d0

bne noto

lea otype,a0

bra iso_prg

noto:

H1A8:

cmp.l (a2)+,d0

dbeq d2,noto

tst.w d2

bpl iso_prg

move.b #$FF,rsctype

move.l #notprg,_addr_in

jsr fm_alert

move.w #$3,_int_in

clr.l $12(a1)

cmpi.b #$2,d0

beq on6

jsr form_di

bra abort

iso_prg:

H1E8:

st (a0)

pea flstats

move.l #$24,-(a7)

move.w handle,-(a7)

bsr fread

move.l $2(a1),d0

add.l $6(a1),d0

move.l d0,$58(a1)

cmpi.w #$601A,flstats

bne on2

moveq #$1C,d0

move.l d0,$16(a1)

move.l d0,diskcnt

add.l $2(a1),d0

move.l d0,$1C(a1)

add.l $6(a1),d0

move.l d0,$20(a1)

subi.l #$1C,d0

bra on3

on2:

H23A:

cmpi.w #$601B,flstats

beq on210

move.l #unkprg,_addr_in

bra peel_out

on210:

H252:

lea cont,a0

lea non,a2

moveq #$3,d0

on225:

H260:

move.b (a2)+,(a0)+

dbf d0,on225

tst.l $16(a1)

bne on25

move.l #$24,$16(a1)

on25:

H274:

move.l $2(a1),d0

add.l $6(a1),d0

on3:

H27C:

add.l $A(a1),d0

move.l d0,$34(a1)

bsr headsin

move.l $2(a1),d0

lea setbuf,a0

tst.b prgtype

bmi get_lab

lea osetbuf,a0

get_lab:

H2A0:

jsr (a0)

move.l d0,$44(a1)

move.l a0,$38(a1)

clr.w -(a7)

move.w handle,-(a7)

move.l $20(a1),-(a7)

bsr fseek

tst.l $E(a1)

beq on4

move.l $E(a1),-(a7)

bsr malloc

move.l d0,$40(a1)

move.l d0,-(a7)

move.l $E(a1),-(a7)

move.w handle,-(a7)

bsr fread

on4:

H2DC:

tst.w $1A(a1)

bne prewant

move.l $24(a1),d0

sub.l $2(a1),d0

sub.l $6(a1),d0

sub.l #$1C,d0

cmpi.w #$601A,flstats

beq itscont

subq.l #8,d0

itscont:

H302:

sub.l $E(a1),d0

move.l d0,-(a7)

move.l d0,$12(a1)

bsr malloc

move.l d0,$3C(a1)

move.l d0,-(a7)

move.l $12(a1),-(a7)

move.w handle,-(a7)

bsr fread

movea.l $3C(a1),a2

movea.l $38(a1),a3

tst.b prgtype

bmi its_prg

move.l $2(a1),d3

moveq #$0,d2

fillrel:

H33C:

move.w (a2)+,d0

beq niktrel

cmpi.w #$6,d0

bpl niktrel

move.w (a2)+,d0

beq isabs

andi.b #$7,d0

addq.b #2,d0

move.b d0,$0(a3,d2.l)

cmpi.b #$6,d0

bne isabs

move.w $FFFE(a2),d0

lsr.w #3,d0

move.w d0,$2(a3,d2.l)

isabs:

H364:

addq.l #2,d2

niktrel:

H366:

addq.l #2,d2

cmp.l d3,d2

bmi fillrel

movea.l #$0,a6

tst.w db_enabl

beq o_d_

move.l $12(a1),d3

sub.l $2(a1),d3

beq o_d_

movea.l $3C(a1),a6

movea.l $3C(a1),a2

adda.l $2(a1),a2

moveq #$0,d2

filreld:

H392:

move.w (a2)+,d0

beq nidtrel

cmpi.w #$6,d0

bpl nidtrel

move.w (a2)+,d0

beq disabs

andi.w #$7,d0

addq.w #2,d0

_nohold:

H3A6:

cmpi.w #$100,d2

bmi nohold_

subi.w #$FE,d2

move.b #$1,(a6)+

bra _nohold

nohold_:

H3B6:

move.b d2,(a6)+

moveq #$0,d2

move.b d0,(a6)+

cmpi.b #$6,d0

bne disabs

move.b $FFFF(a2),d0

lsr.b #3,d0

move.b d0,(a6)+

move.b $FFFE(a2),d0

lsr.b #3,d0

move.b d0,(a6)+

disabs:

H3D2:

addq.l #2,d2

subq.l #2,d3

nidtrel:

H3D6:

addq.l #2,d2

subq.l #2,d3

bhi filreld

clr.b $1(a6)

suba.l $3C(a1),a6

addq.l #1,a6

o_d_:

H3E6:

move.l a6,$12(a1)

move.l a6,-(a7)

move.l $3C(a1),-(a7)

bsr mshrink

move.l $12(a1),d0

beq p_nidrel

addq.l #1,d0

move.l d0,$12(a1)

p_nidrel:

H400:

move.l $E(a1),d5

beq prewant

movea.l $40(a1),a2

movea.l $38(a1),a3

move.l $2(a1),d3

move.l $6(a1),d4

moveq #$0,d2

relsymb:

H41A:

move.w $8(a2,d2.l),d0

move.l $A(a2,d2.l),d1

btst #$C,d0

bne norels

btst #$E,d0

bne norels

btst #$B,d0

bne norels

btst #$9,d0

beq no_labl

move.b #$2,$0(a3,d1.l)

bra norels

no_labl:

H442:

add.l d3,d1

btst #$A,d0

bne rels

add.l d4,d1

rels:

H44C:

move.l d1,$A(a2,d2.l)

norels:

H450:

addi.l #$E,d2

cmp.l d5,d2

bmi relsymb

bra prewant

its_prg:

H45E:

moveq #$0,d5

move.l (a2)+,d3

move.l d3,d7

move.l $2(a1),d6

move.b d3,d4

asr.l #4,d3

asl.l #1,d3

adda.l d3,a3

andi.l #$F,d4

move.l d4,d3

rel_def:

H478:

move.b d4,d3

addq.b #1,d4

bset d4,d5

moveq #$0,d2

firstly:

H480:

moveq #$0,d1

move.b (a2)+,d1

beq on0

cmpi.b #$1,d1

bne lastly

addi.l #$FE,d2

bra firstly

lastly:

H494:

add.l d2,d1

add.l d1,d7

cmp.l d6,d7

bpl on0

move.b d1,d4

asr.l #4,d1

asl.l #1,d1

beq notover

move.w d5,(a3)

moveq #$0,d5

adda.l d1,a3

notover:

H4AA:

andi.l #$F,d4

add.b d3,d4

bclr #$4,d4

beq rel_def

move.w d5,(a3)+

moveq #$0,d5

bra rel_def

on0:

H4BE:

move.w d5,(a3)

movea.l #$0,a6

tst.w db_enabl

beq relc_d

tst.b $FFFF(a2)

beq relc_d

movea.l $3C(a1),a6

sub.l $2(a1),d7

cmpi.l #$100,d7

bmi tinyd_1

p_tinyd:

H4E4:

cmpi.l #$100,d7

bmi tiny_d

move.b #$1,(a6)+

subi.l #$FE,d7

cmpi.l #$100,d7

bpl p_tinyd

tinyd_1:

H4FE:

move.b d7,(a6)+

tiny_d:

H500:

move.b (a2)+,(a6)+

bne tiny_d

suba.l $3C(a1),a6

addq.l #1,a6

move.l $E(a1),d0

beq relc_d

movea.l $38(a1),a3

moveq #$9,d3

moveq #$0,d7

movea.l #$1,a4

bsr setsym

relc_d:

H522:

move.l a6,$12(a1)

move.l a6,-(a7)

move.l $3C(a1),-(a7)

bsr mshrink

prewant:

H530:

tst.l $6(a1)

beq no_data

move.l $6(a1),d0

bsr setbuf

move.l d0,$4C(a1)

move.l a0,$48(a1)

move.l $E(a1),d0

beq no_data

move.l $2(a1),d7

movea.l $48(a1),a3

moveq #$A,d3

suba.l a4,a4

bsr setsym

no_data:

H55C:

tst.l $A(a1)

beq on6

move.l $A(a1),d0

bsr setbuf

move.l d0,$54(a1)

move.l a0,$50(a1)

move.l $E(a1),d0

beq on6

move.l $34(a1),d7

sub.l $A(a1),d7

movea.l $50(a1),a3

moveq #$8,d3

suba.l a4,a4

bsr setsym

on6:

H58C:

move.l #$FFFFFFFF,-(a7)

bsr malloc

move.l d0,d3

move.l d0,-(a7)

bsr malloc

move.l d0,bigbuff

lea buffy,a0

move.l d0,(a0)

move.l d0,$4(a0)

lsr.l #2,d3

bclr #$0,d3

move.l d3,d2

add.l d3,d2

add.l d2,$4(a0)

move.l d3,county

move.l d2,bbcount

move.l d2,bcount

tst.w fil_mem

bne bigslop

move.l m_start,bigbuff

move.l d2,county

moveq #$0,d2

moveq #$0,d3

move.l $2(a1),bbcount

move.l $2(a1),bcount

bigslop:

H5FC:

add.l d2,(a0)

add.l d3,$4(a0)

tst.b rsctype

bpl not_rsc

move.l $24(a1),d0

move.l d0,$6(a1)

clr.l $A(a1)

clr.l $2(a1)

bsr headsin

move.l d0,$2(a1)

move.l d0,$34(a1)

clr.l $16(a1)

clr.l $1C(a1)

not_rsc:

H62E:

move.l $2(a1),stopit

tst.w fil_mem

bne fil_bag

movea.l bigbuff,a4

move.l m_stop,stopit

bra qtime_1

fil_bag:

H650:

clr.w -(a7)

move.w handle,-(a7)

move.l $16(a1),-(a7)

bsr fseek

move.l #$0,address

bsr bigread

qtime_1:

H66E:

clr.w -(a7)

lea outdisk,a0

move.b d_drive,(a0)+

move.b #$3A,(a0)+

move.b #$5C,(a0)+

movea.l a1,a2

adda.l #$28,a2

moveq #$B,d0

pre_crat:

H68E:

move.b (a2)+,(a0)+

dbeq d0,pre_crat

pea outdisk

move.w #$3C,-(a7)

trap #$1

addq.l #8,a7

tst.l d0

bpl created

move.l #badcrat,_addr_in

bra peel_out

created:

H6B4:

move.w d0,handlef

move.l county,d3

move.l d3,tinycnt

lea buffy,a2

adda.l current,a2

movea.l (a2),a2

tst.b rsctype

bmi stfhead

move.w #$700,sym_flag

bra addr_0

back1:

H6E8:

move.l address,d0

sub.l prior,d0

move.l address,prior

neg.b d0

move.b d0,holdbuf

addq.l #1,holdcnt

addr_0:

H70C:

jsr extendw

lea jump1,a0

move.w d1,d0

rol.w #4,d0

andi.w #$F,d0

asl.w #2,d0

movea.l $0(a0,d0.w),a0

jsr (a0)

move.l tinycnt,d3

tst.b wantw

beq nowant

lea holdbuf,a6

adda.l holdcnt,a6

move.b tabsit,(a6)+

move.b tabsit,(a6)+

move.b aster,(a6)+

addq.l #3,holdcnt

pea hexcmmd

jsr holdit

lea hexcmmd,a0

move.w hexcunt,d0

mulu #$5,d0

clrxy:

H776:

clr.b (a0)+

dbf d0,clrxy

clr.w hexcunt

nowant:

H782:

lea holdbuf,a6

move.l holdcnt,d7

subq.l #1,d7

bsr stuffit

clr.l holdcnt

move.l d3,tinycnt

move.l address,d0

cmp.l stopit,d0

bmi back1

move.b #$FF,(a2)

subq.l #1,d3

btst #$0,d3

beq eq_stuf

subq.l #1,d3

clr.b $1(a2)

eq_stuf:

H7C2:

bsr stuff

move.l txtwrit,total

lea flstats,a1

move.l txtwrit,stopit

move.l #$0,txtwrit

move.l #$0,address

tst.w fil_mem

bne stf_fil

lea buffy,a0

move.l (a0),bigbuff

move.l $4(a0),(a0)

move.l county,d0

move.l d0,bbcount

move.l d0,bcount

lsr.l #1,d0

bclr #$0,d0

move.l d0,county

add.l d0,$4(a0)

lea buffy,a2

adda.l current,a2

movea.l (a2),a2

stf_fil:

H83C:

move.l county,d3

movea.l $38(a1),a3

moveq #$FF,d4

move.l $44(a1),d5

bsr preread

stfhead:

H850:

lea header,a6

moveq #$FF,d7

stuffs:

H858:

move.b (a6)+,d0

bmi chktex

addq.l #1,d7

bra stuffs

chktex:

H860:

lea header,a6

bsr stuffit

tst.b rsctype

bmi do_data

tst.b sym_no

beq x_symtab

move.l $E(a1),d6

bne z_symtab

lea nict_sym,a6

move.b (a6)+,d7

andi.l #$FF,d7

bsr stuffit

bra x_symtab

z_symtab:

H89A:

movea.l $40(a1),a1

add.l a1,d6

pea pre_ty

jsr holdit

lea holdbuf,a6

move.l holdcnt,d7

subq.l #1,d7

bsr stuffit

agin_ty:

H8BE:

move.l #$A0D2A09,holdbuf

move.l #$4,holdcnt

move.l a1,-(a7)

move.w $8(a1),d1

clr.w $8(a1)

jsr holdit

pea spaces

jsr holdit

move.w d1,$8(a1)

lea labtype,a6

moveq #$0,d0

moveq #$7,d7

may_ty:

H8FC:

asl.w #1,d1

bcc no_ty

move.l $0(a6,d0.l),-(a7)

jsr holdit

no_ty:

H90A:

addq.l #4,d0

dbf d7,may_ty

pea spaces

jsr holdit

move.l $A(a1),d0

jsr displc

adda.l #$E,a1

lea holdbuf,a6

move.l holdcnt,d7

subq.l #1,d7

bsr stuffit

cmpa.l d6,a1

bmi agin_ty

lea tail,a6

moveq #$7,d7

bsr stuffit

lea flstats,a1

clr.l holdcnt

x_symtab:

H95C:

tst.l $2(a1)

beq do_data

lea textlin,a6

moveq #$A,d7

bsr stuffit

lea holdbuf,a6

move.l holdcnt,d7

moveq #$0,d0

clr.l prior

move.w #$200,sym_flag

move.l $44(a1),labcunt

tst.b prgtype

bpl gogetlb

moveq #$FE,d4

move.w #$8,d5

swap d5

move.w (a3),d5

gogetlb:

H9A6:

tst.l labcunt

beq dissymb

bsr getlabs

addrchk:

H9B2:

cmp.l d0,d4

bmi gogetlb

bhi dissymb

add.l m_start,d0

bsr sym_stor

move.b holdbuf,d1

cmp.b H,d1

beq no_doub

move.b #$A,(a6)+

move.b #$D,(a6)+

addq.l #2,holdcnt

moveq #$1,d1

bsr sym_stor

no_doub:

H9E4:

clr.l holdcnt

sub.l m_start,d0

bsr getlabs

move.b #$A,(a6)+

move.b #$D,(a6)+

addq.l #2,d7

dissymb:

H9FE:

move.b tabsit,(a6)+

addq.l #1,d7

chkline:

HA06:

move.b (a4)+,(a6)+

bmi no_byte

addq.l #1,d7

subq.l #1,d2

bne chkline

bsr preread

bra chkline

no_byte:

HA16:

move.b $FFFF(a6),d0

neg.b d0

andi.l #$FF,d0

add.l prior,d0

move.l d0,prior

move.b #$A,$FFFF(a6)

move.b #$D,(a6)

lea holdbuf,a6

addq.l #1,d7

bsr stuffit

btst #$0,d0

bne endlabs

subq.l #1,d2

bne noload

move.l bcount,d7

sub.l d2,d7

add.l stopper,d7

cmp.l stopit,d7

beq endlabs

move.l bcount,d7

add.l d7,stopper

bsr preread

noload:

HA74:

lea holdbuf,a6

clr.l holdcnt

moveq #$0,d7

bra addrchk

endlabs:

HA86:

btst #$0,d3

beq eq_labs

subq.l #1,d3

move.b spaces,(a2)

eq_labs:

HA94:

bsr stuff

clr.l holdcnt

tst.w fil_mem

beq alldone

do_data:

HAA8:

lea flstats,a1

move.l $16(a1),d0

move.l $1C(a1),d4

move.l d4,diskcnt

move.l $6(a1),d5

move.l d5,stopit

sub.l d0,d4

tst.l d5

beq outdata

tst.b rsctype

bmi dat_lin

clr.w -(a7)

move.w handle,-(a7)

move.l diskcnt,-(a7)

bsr fseek

move.l #$0,address

bsr bigread

add.l d2,address

move.l d2,bcount

dat_lin:

HB02:

move.w #$400,sym_flag

lea datalin,a6

moveq #$B,d7

bsr stuffit

lea holdbuf,a6

moveq #$0,d7

movea.l #$0,a5

tst.b rsctype

bmi do_1st

n_rsc:

HB2C:

movea.l $48(a1),a3

move.l d4,d0

subq.l #1,d0

moveq #$10,d6

swap d6

move.w (a3),d6

btst #$1,d6

bne do_1st

bset #$0,d6

do_1st:

HB44:

move.l $4C(a1),labcunt

bsr get_db

tst.l $12(a1)

bne do_1sto

move.l #$FFFFFFFF,$12(a1)

bra datseek

do_1sto:

HB60:

bsr get_relc

datseek:

HB64:

move.w #$A0D,holdbuf

move.l #$2,holdcnt

bsr sym_stor

lea holdbuf,a0

move.b $2(a0),d1

cmp.b H,d1

beq x_doub

move.b #$A,(a6)+

move.b #$D,(a6)+

addq.l #2,holdcnt

moveq #$1,d1

bsr sym_stor

x_doub:

HBA0:

bsr get_db

clr.l holdcnt

lea holdbuf,a6

movea.w d1,a5

subq.l #1,d7

bmi dun_sym

seekdat:

HBB6:

bsr stuffit

lea holdbuf,a6

dun_sym:

HBC0:

moveq #$8,d7

lea dcbtab,a0

tab_1:

HBC8:

move.b (a0)+,(a6)+

dbf d7,tab_1

tst.l $12(a1)

bne not_rad

move.b #$6C,$FFFE(a6)

move.l d0,-(a7)

move.w sym_flag,-(a7)

move.w #$700,sym_flag

moveq #$2,d1

moveq #$3,d7

moveq #$0,d0

rol_rad:

HBF2:

rol.l #8,d0

move.b (a4)+,d0

subq.l #1,d5

subq.l #1,d2

bhi droll_rd

tst.l d5

ble droll_rd

bsr bigread

add.l d2,address

move.l d2,bcount

droll_rd:

HC10:

dbf d7,rol_rad

addq.l #4,d4

move.l #$9,holdcnt

tst.b prgtype

bmi pnot_rad

move.b d_rlflag,d1

cmpi.b #$6,d1

bne pnot_rad

pea pyes_rad

movem.l d0-d2/d6/a0,-(a7)

move.l $E(a1),d7

movea.l $40(a1),a0

move.w d_rlsym,d6

bra o_symb

pnot_rad:

HC50:

bsr sym_stor

pyes_rad:

HC54:

move.l holdcnt,d7

lea holdbuf,a6

subq.b #2,d7

bsr get_relc

subq.l #4,$12(a1)

move.w (a7)+,sym_flag

move.l (a7)+,d0

bsr stuffit

lea holdbuf,a6

tst.l d5

beq endat_rl

cmp.l d0,d4

bne dun_sym

bra datseek

not_rad:

HC8C:

moveq #$3F,d7

move.b (a4),d1

cmpi.b #$20,d1

bmi its_num

cmpi.b #$7F,d1

bpl its_num

is_spc:

HCA0:

move.b apost,(a6)+

subq.b #1,d7

aph_now:

HCA8:

move.b d1,(a6)+

addq.l #1,a4

addq.l #1,d4

subq.l #1,d5

bhi no_apend

move.b apost,(a6)+

subq.b #2,d7

bra endata

no_apend:

HCBE:

subq.l #1,d2

bhi read_ap

bsr bigread

add.l d2,address

move.l d2,bcount

read_ap:

HCD2:

subq.b #1,d7

bne pre_new

moveq #$48,d7

move.b apost,(a6)+

lea holdbuf,a6

subq.l #1,$12(a1)

bra seekdat

pre_new:

HCEC:

subq.l #1,$12(a1)

beq xaph_rl

cmp.l d0,d4

bne more_ap

xaph_rl:

HCF6:

move.b apost,(a6)+

subq.b #1,d7

new_sym:

HCFE:

subi.l #$47,d7

neg.l d7

lea holdbuf,a6

bsr stuffit

lea holdbuf,a6

moveq #$0,d7

tst.b rsctype

bmi datseek

move.w a5,d1

beq dun_sym

cmp.l d0,d4

beq datseek

bra dun_sym

more_ap:

HD32:

move.b (a4),d1

cmpi.b #$20,d1

bpl qury_ap

bra not_ap

qury_ap:

HD3C:

cmpi.b #$7F,d1

bmi aph_now

not_ap:

HD44:

move.b apost,(a6)+

subq.b #1,d7

cmpi.b #$4,d7

bmi no_room

move.b comma,(a6)+

subq.b #1,d7

its_num:

HD5A:

lea hexlab,a0

numagin:

HD60:

andi.w #$FF,d1

ror.l #4,d1

move.b hex,(a6)+

move.b $0(a0,d1.w),(a6)+

rol.l #4,d1

andi.b #$F,d1

move.b $0(a0,d1.w),(a6)+

subq.b #3,d7

addq.l #1,a4

addq.l #1,d4

subq.l #1,d5

beq endata

subq.l #1,d2

bhi read_nm

bsr bigread

add.l d2,address

move.l d2,bcount

read_nm:

HD98:

subq.l #1,$12(a1)

beq new_sym

cmp.l d0,d4

beq new_sym

cmpi.b #$4,d7

bmi no_room

move.b comma,(a6)+

subq.l #1,d7

move.b (a4),d1

cmpi.b #$20,d1

bmi numagin

cmpi.b #$7F,d1

bpl numagin

bra is_spc

no_room:

HDC6:

subi.l #$47,d7

neg.l d7

lea holdbuf,a6

bra seekdat

endata:

HDD8:

subi.l #$47,d7

neg.l d7

lea holdbuf,a6

bsr stuffit

endat_rl:

HDEA:

btst #$0,d3

beq eq_end

subq.l #1,d3

move.b spaces,(a2)

eq_end:

HDF8:

bsr stuff

outdata:

HDFC:

tst.b rsctype

bmi alldone

clr.b savew

tst.l $A(a1)

beq alldone

move.l $58(a1),d4

lea bsslin,a6

moveq #$A,d7

movea.l $50(a1),a3

move.l d4,d0

subq.l #1,d0

moveq #$10,d6

swap d6

move.w (a3),d6

bset #$0,d6

move.l $54(a1),labcunt

move.w #$100,sym_flag

bsr get_db

bsseek:

HE46:

bsr stuffit

move.w #$A0D,holdbuf

move.l #$2,holdcnt

bsr sym_stor

lea holdbuf,a0

move.b $2(a0),d1

cmp.b H,d1

beq z_doub

move.b #$A,(a6)+

move.b #$D,(a6)+

addq.l #2,holdcnt

moveq #$1,d1

bsr sym_stor

z_doub:

HE86:

lea dsbtab,a0

moveq #$8,d5

dobssln:

HE8E:

move.b (a0)+,(a6)+

dbf d5,dobssln

addi.l #$9,d7

move.l d7,holdcnt

bsr get_db

tst.l labcunt

beq bssend

move.l d0,d5

sub.l d4,d0

jsr displc

move.l d5,d0

move.l d5,d4

lea holdbuf,a6

move.l holdcnt,d7

subq.l #1,d7

bra bsseek

bssend:

HECC:

move.l $34(a1),d0

sub.l d4,d0

jsr displc

lea holdbuf,a6

move.l holdcnt,d7

subq.l #1,d7

bsr stuffit

alldone:

HEEA:

lea endlin,a6

moveq #$9,d7

bsr stuffit

btst #$0,d3

beq all_end

subq.l #1,d3

move.b spaces,(a2)

all_end:

HF04:

bsr stuff

move.l txtwrit,d0

sub.l total,d0

move.l d0,total

move.w handlef,-(a7)

bsr fclose

int_abt:

HF24:

bsr ssp_off

jsr form_di

tst.w fil_mem

beq abort

move.w handle,-(a7)

bsr fclose

abort:

HF40:

jsr v_clsvw

jsr exit

sgetlab:

HF4C:

move.l (a7)+,saveptr

move.w (a7)+,savew

movem.l d1-d7/a0-a1/a3,-(a7)

lea flstats,a1

move.l address,d4

movea.l $38(a1),a3

movea.l $40(a1),a0

move.w savew,d1

beq get

ext.l d1

tst.b size

beq itsbyte

subq.l #2,d4

itsbyte:

HF86:

add.l d1,d4

move.l d4,d0

tst.b prgtype

bpl set_68k

moveq #$1,d1

sub.l m_start,d4

bsr rollbit

addq.b #1,d5

btst d5,d6

beq no_resy

addq.b #1,d1

no_resy:

HFA6:

bsr sym_stor

move.l d0,d4

sub.l m_start,d4

bsr disc_lb

beq ugly

bra set_hit

set_68k:

HFBC:

cmp.l $2(a1),d4

bmi pre_68k

bsr disc_lb

beq ugly

bsr rollbit

moveq #$0,d1

bset d5,d6

beq zer0_68k

moveq #$1,d1

zer0_68k:

HFD6:

addq.b #1,d1

move.w d6,$0(a3,d4.l)

bra post_pre

pre_68k:

HFDE:

move.b $0(a3,d4.l),d1

bne post_pre

move.b #$1,$0(a3,d4.l)

moveq #$1,d1

post_pre:

HFEC:

bsr sym_stor

bra cleared

get:

HFF4:

tst.w fil_mem

beq ugly

subq.l #4,d4

tst.b prgtype

bpl x68k

bsr rollbit

addq.b #1,d5

btst d5,d6

beq ugly

moveq #$2,d1

bsr sym_stor

move.l d0,d4

bsr disc_lb

beq ugly

set_hit:

H1024:

bsr rollbit

bset d5,d6

move.w d6,$0(a3,d4.l)

bra cleared

x68k:

H1030:

move.b $0(a3,d4.l),d1

beq ugly

bsr sym_stor

cmpi.b #$6,d1

beq cleared

cmpi.b #$2,d1

beq cleared

move.l d0,d4

cmpi.b #$1,d1

beq ugly

cmpi.b #$4,d1

bne duo_bss

move.b $0(a3,d4.l),d1

bne cleared

move.b #$1,$0(a3,d4.l)

bra cleared

duo_bss:

H1062:

movea.l $48(a1),a3

cmpi.b #$5,d1

bne set_hit

movea.l $50(a1),a3

bra set_hit

cleared:

H1072:

subq.l #1,holdcnt

move.w #$0,savew

unclr:

H1080:

movem.l (a7)+,d1-d7/a0-a1/a3

move.w savew,-(a7)

move.l saveptr,-(a7)

rts

ugly:

H1092:

move.w #$FFFF,savew

bra unclr

disc_lb:

H109C:

movem.l d7,-(a7)

cmp.l $2(a1),d4

bmi lb_disc

move.l d4,d7

movea.l $48(a1),a3

sub.l $2(a1),d4

cmp.l $58(a1),d7

bmi lb_disc

sub.l $6(a1),d4

movea.l $50(a1),a3

cmp.l $34(a1),d7

bmi lb_disc

sub.l d7,d7

lb_disc:

H10C6:

movem.l (a7)+,d7

rts

rollbit:

H10CC:

move.l d4,d5

andi.l #$F,d5

asr.l #4,d4

asl.l #1,d4

move.w $0(a3,d4.l),d6

rts

getlabs:

H10DE:

tst.b prgtype

bmi glabprg

etlabs:

H10E6:

addq.l #1,d4

move.b (a3)+,d1

subq.l #1,d5

beq ahit

tst.b d1

beq etlabs

ahit:

H10F2:

rts

glabprg:

H10F4:

tst.l labcunt

beq ahit

moveq #$2,d1

move.w d5,d6

swap d5

bogart:

H1102:

addq.l #2,d4

subq.b #1,d5

bpl notbeg

addq.l #2,a3

move.w (a3),d6

move.b #$7,d5

subq.l #2,labcunt

beq ahit

notbeg:

H1118:

subq.b #1,d1

lsr.w #1,d6

bcc no_pseud

btst #$0,d6

beq bhit

no_pseud:

H1124:

addq.b #1,d1

lsr.w #1,d6

bcc bogart

bhit:

H112A:

swap d5

move.w d6,d5

rts

get_db:

H1130:

tst.l labcunt

beq z_hit

move.l d7,-(a7)

moveq #$1,d1

move.w d6,d7

swap d6

bacall:

H1140:

addq.l #1,d0

subq.b #1,d6

bpl no_beg

addq.l #2,a3

move.w (a3),d7

move.b #$F,d6

subq.l #2,labcunt

bne no_beg

move.l (a7)+,d7

z_hit:

H1158:

moveq #$0,d1

rts

no_beg:

H115C:

lsr.w #1,d7

bcc bacall

tst.l $E(a1)

beq db_hit

addq.b #1,d1

db_hit:

H1168:

swap d6

move.w d7,d6

move.l (a7)+,d7

rts

get_relc:

H1170:

movem.l d1-d2/a2,-(a7)

moveq #$0,d2

moveq #$0,d1

movea.l $3C(a1),a2

seek_rl:

H117C:

move.b (a2)+,d1

beq last_rl

cmpi.b #$1,d1

bne dun_rl

addi.l #$FE,d2

bra seek_rl

dun_rl:

H118E:

add.l d1,d2

tst.b otype

bpl no_flags

move.b (a2)+,d1

move.b d1,d_rlflag

cmpi.b #$6,d1

bne no_flags

move.b (a2)+,d1

rol.w #8,d1

move.b (a2)+,d1

move.w d1,d_rlsym

no_flags:

H11B2:

move.l d2,$12(a1)

move.l a2,$3C(a1)

movem.l (a7)+,d1-d2/a2

rts

last_rl:

H11C0:

cmp.l $6(a1),d5

beq dun_rl

move.l #$FFFFFFFF,$12(a1)

movem.l (a7)+,d1-d2/a2

rts

sym_stor:

H11D4:

movem.l d0-d2/d6/a0,-(a7)

cmpi.b #$1,d1

beq pseudo

bmi no_sy

move.l $E(a1),d7

beq pseudo

movea.l $40(a1),a0

moveq #$0,d6

cmpi.b #$2,d1

beq anosymb

cmpi.b #$4,d1

beq anosymb

cmpi.b #$6,d1

bne it_sun

move.w $2(a3,d4.l),d6

o_symb:

H1208:

mulu #$E,d6

bcc nott_ao

move.l #overflw,_addr_in

bra peel_out

it_sun:

H121C:

add.l $2(a1),d0

cmpi.b #$3,d1

beq anosymb

add.l $6(a1),d0

anosymb:

H122A:

cmp.l $A(a0,d6.l),d0

bne un_symb

move.w $8(a0,d6.l),d2

and.w sym_flag,d2

bne nott_ao

un_symb:

H123C:

addi.l #$E,d6

cmp.l d7,d6

bmi anosymb

moveq #$1,d1

bra pseudo

nott_ao:

H124A:

lea holdbuf,a6

move.l holdcnt,d7

adda.l d7,a6

lea $0(a0,d6.l),a0

moveq #$7,d6

stfsym:

H125E:

move.b (a0)+,d2

beq apres_s

move.b d2,(a6)+

addq.l #1,d7

dbf d6,stfsym

apres_s:

H126A:

move.l d7,holdcnt

cmpi.b #$6,d1

bne no_plus

tst.l d0

beq no_plus

move.b space,(a6)+

move.b plus,(a6)+

move.b space,(a6)+

addq.l #3,holdcnt

jsr displc

no_plus:

H1298:

lea holdbuf,a6

move.l holdcnt,d7

adda.l d7,a6

move.b colon,(a6)+

addq.l #1,d7

move.l d7,holdcnt

no_sy:

H12B4:

movem.l (a7)+,d0-d2/d6/a0

rts

pseudo:

H12BA:

move.w H,hex

jsr displc

move.w rehex,hex

bra no_plus

stuffy:

H12D6:

move.b (a6)+,d0

beq nonono

move.b d0,(a2)+

addq.l #1,d3

cmp.l county,d3

bmi notyt

move.l d3,tinycnt

bsr stuff

notyt:

H12F0:

dbf d7,stuffy

nonono:

H12F4:

rts

headsin:

H12F6:

movem.l d0/a0-a2,-(a7)

lea flstats,a1

move.l $34(a1),d0

lea progbyt,a2

bsr heads

move.l $A(a1),d0

lea bssbyt,a2

bsr heads

move.l $2(a1),d0

lea textbyt,a2

bsr heads

move.l $6(a1),d0

lea databyt,a2

bsr heads

move.l $24(a1),d0

lea filebyt,a2

bsr heads

bra endhead

heads:

H133E:

jsr binhex

lea dsplace,a0

moveq #$6,d0

lope:

H134C:

cmpi.b #$30,(a0)

bne roun

addq.l #1,a0

dbf d0,lope

roun:

H1358:

move.b (a0)+,(a2)+

bne roun

move.b spaces,-(a2)

rts

endhead:

H1364:

lea filenm,a0

lea headnam,a2

tst.w fil_mem

bne headend

lea hd_mem,a2

lea memory,a0

mem_nd:

H1384:

move.b (a0)+,(a2)+

bne mem_nd

move.b spaces,-(a2)

lea holdbuf,a0

addq.l #1,a0

lea headnam,a2

headend:

H139C:

move.b (a0)+,(a2)+

bne headend

move.b spaces,-(a2)

movem.l (a7)+,d0/a0-a2

rts

preread:

H13AC:

movem.l d0-d1/a0-a1,-(a7)

clr.w -(a7)

move.w handlef,-(a7)

move.l address,-(a7)

bsr fseek

move.l stopit,d0

sub.l address,d0

cmp.l bbcount,d0

bmi readata

move.l bbcount,d0

readata:

H13DC:

move.l bigbuff,-(a7)

move.l d0,-(a7)

move.w handlef,-(a7)

bsr fread

movea.l bigbuff,a4

add.l d0,address

move.l d0,bcount

move.l d0,d2

movem.l (a7)+,d0-d1/a0-a1

rts

bigread:

H1408:

movem.l d0-d1/a0-a1,-(a7)

move.l stopit,d0

sub.l address,d0

cmp.l bbcount,d0

bmi reedlot

move.l bbcount,d0

reedlot:

H1426:

move.l bigbuff,-(a7)

move.l d0,-(a7)

move.w handle,-(a7)

bsr fread

movea.l bigbuff,a4

add.l d0,diskcnt

move.l d0,d2

movem.l (a7)+,d0-d1/a0-a1

rts

stuffit:

H144C:

move.b (a6)+,(a2)+

subq.l #1,d3

bne notyet

bsr stuff

notyet:

H1454:

dbf d7,stuffit

rts

stuff:

H145A:

movem.l d0-d1/a0-a1,-(a7)

sub.l county,d3

neg.l d3

clr.w -(a7)

move.w handlef,-(a7)

move.l txtwrit,-(a7)

bsr fseek

lea buffy,a2

adda.l current,a2

movea.l (a2),a2

move.l a2,-(a7)

move.l d3,-(a7)

move.w handlef,-(a7)

bsr fwrite

subq.l #4,current

neg.l current

lea buffy,a2

adda.l current,a2

movea.l (a2),a2

add.l d3,txtwrit

move.l county,d3

movem.l (a7)+,d0-d1/a0-a1

rts

setbuf:

H14C0:

asr.l #3,d0

addq.l #1,d0

osetbuf:

H14C4:

btst #$0,d0

beq is_even

addq.l #1,d0

is_even:

H14CC:

move.l d0,d3

move.l d0,-(a7)

bsr malloc

movea.l d0,a0

movea.l d0,a2

moveq #$0,d1

move.l d3,d0

subq.w #1,d3

clrbabs:

H14DE:

move.b d1,(a2)+

dbf d3,clrbabs

rts

setsym:

H14E6:

moveq #$0,d5

moveq #$0,d2

movea.l $40(a1),a2

symbs:

H14EE:

move.l $A(a2,d2.l),d4

move.w $8(a2,d2.l),d1

btst d3,d1

beq notrel

sub.l d7,d4

move.b d4,d6

asr.l #4,d4

asl.l #1,d4

move.w $0(a3,d4.l),d5

andi.l #$F,d6

add.w a4,d6

bset d6,d5

move.w d5,$0(a3,d4.l)

moveq #$0,d5

notrel:

H1516:

addi.l #$E,d2

cmp.l d0,d2

bmi symbs

rts

mshrink:

H1522:

move.l (a7)+,saveptr

clr.w -(a7)

move.w #$4A,-(a7)

trap #$1

adda.l #$C,a7

tst.l d0

beq freed

move.l #freerr,_addr_in

bra peel_out

freed:

H1548:

move.l saveptr,-(a7)

rts

fseek:

H1550:

move.l (a7)+,saveptr

move.w #$42,-(a7)

trap #$1

adda.l #$A,a7

tst.l d0

bpl freed

move.l #seekerr,_addr_in

bra peel_out

fread:

H1574:

move.l (a7)+,saveptr

move.w #$3F,-(a7)

trap #$1

adda.l #$C,a7

cmp.l $FFF8(a7),d0

bpl freed

move.l #badread,_addr_in

bra peel_out

fclose:

H159A:

move.l (a7)+,saveptr

move.w #$3E,-(a7)

trap #$1

addq.l #4,a7

tst.l d0

beq freed

move.l #badclos,_addr_in

bra peel_out

malloc:

H15B8:

move.l (a7)+,saveptr

move.w #$48,-(a7)

trap #$1

addq.l #6,a7

tst.l d0

bpl freed

move.l #badsymb,_addr_in

bra peel_out

fopen:

H15D8:

move.l (a7)+,saveptr

move.w #$3D,-(a7)

trap #$1

addq.l #8,a7

tst.l d0

bpl freed

move.l #badload,_addr_in

bra peel_out

fwrite:

H15F8:

move.l (a7)+,saveptr

move.w #$40,-(a7)

trap #$1

adda.l #$C,a7

cmp.l $FFF8(a7),d0

bpl freed

move.l #badwrit,_addr_in

peel_out:

H161C:

bsr ssp_off

jsr form_di

jsr fm_alert

bsr abort

dgetdrv:

H162E:

move.w #$19,-(a7)

trap #$1

addq.l #2,a7

rts

ssp_off:

H1638:

tst.l ssp

beq offed

move.l ssp,-(a7)

move.w #$20,-(a7)

trap #$1

addq.l #6,a7

offed:

H164E:

rts

ssp_on:

H1650:

tst.w fil_mem

bne offed

clr.l -(a7)

move.w #$20,-(a7)

trap #$1

addq.l #6,a7

move.l d0,ssp

rts

window:

H166A:

move.l #_contrl,pblock

move.l #_intin,_iioff

move.l #_ptsin,_pioff

move.l #_intout,_iooff

move.l #_ptsout,_pooff

_appl_in:

H169C:

move.l #_control,_c

move.l #_global,H46E4

move.l #_int_in,H46E8

move.l #_int_out,H46EC

move.l #_addr_in,H46F0

move.l #_addr_ou,H46F4

move.l #_c,_ad_c

move.w #$A,_control

move.l #$1,H4B18

clr.l H4B1C

bsr aes_it

bmi aes_err

graf_ha:

H1702:

move.w #$4D,_control

move.l #$5,H4B18

clr.l H4B1C

bsr aes_it

move.w d0,handle

move.w d0,H4B5E

move.w H4B40,cell_w

move.w H4B42,cell_h

v_opnvw:

H173E:

move.w #$64,_contrl

clr.w H4B54

move.w #$B,H4B58

move.w #$0,_intin

move.l #$10001,H42E2

move.l #$10001,H42E6

move.l #$10001,H42EA

move.l #$20001,H42EE

move.l #$10001,H42F2

clr.l H4AFE

clr.l H4B02

clr.l H4B06

clr.l H4B0A

clr.l H4B0E

clr.l H4B12

move.l #_intin,_iioff

move.l #_intout,_iooff

move.l #_intout,d0

add.l #$5A,d0

move.l d0,_pooff

bsr vdi_it

tst.w H4B5E

bne v_opned

move.l #vdierr,_addr_in

bsr fm_alert

move.w #$FFFF,fil_mem

bra v_clsvw

v_opned:

H17FE:

move.l #_intin,_iioff

move.l #_intout,_iooff

move.l #_ptsout,_pooff

move.l #_ptsin,_pioff

move.w _intout,d0

move.w #$0,_int_in

bsr graf_mou

move.l #endtree,d0

sub.l #tree_1,d0

lea tree_1,a1

move.w cell_h,d2

move.w cell_w,d1

more_ob:

H1856:

move.w $10(a1),d4

mulu d1,d4

move.w d4,$10(a1)

move.w $12(a1),d4

mulu d2,d4

move.w d4,$12(a1)

move.w $14(a1),d4

mulu d1,d4

move.w d4,$14(a1)

move.w $16(a1),d4

mulu d2,d4

move.w d4,$16(a1)

adda.l #$18,a1

subi.l #$18,d0

bne more_ob

begin:

H188C:

clr.w fil_but

clr.w mem_but

clr.w x_sym

clr.w db_set

lea tree_1,a1

bsr form_ce

move.w #$0,_int_in

bsr form_di

move.w #$1,_int_in

bsr form_di

move.l a1,_addr_in

clr.w _int_in

move.w #$1,H4B20

bsr obj_dr

move.l a1,_addr_in

move.w #$FFFF,_int_in

bsr form_do

move.w d0,fil_mem

move.w #$2,_int_in

bsr form_di

move.w #$3,_int_in

bsr form_di

cmpi.w #$2,fil_mem

beq fsel_in

cmpi.w #$3,fil_mem

beq its_mem

subq.w #4,fil_mem

move.w #$5,_contrl

clr.w H4B54

clr.w H4B58

move.w #$13,H4B5C

bsr vdi_it

pea caveats

move.w #$9,-(a7)

trap #$1

addq.l #6,a7

move.w #$1,-(a7)

trap #$1

addq.l #2,a7

bsr v_clsvw

jsr exit

its_mem:

H196A:

clr.w x_ok

clr.w x_cancel

lea tree_2,a1

bsr form_ce

move.w #$0,_int_in

bsr form_di

move.l a1,_addr_in

clr.w _int_in

move.w #$1,H4B20

bsr obj_dr

move.l a1,_addr_in

move.w #$1,_int_in

bsr form_do

move.w d0,d6

move.w #$3,_int_in

bsr form_di

subq.w #4,d6

beq begin

lea mem_1st,a0

bsr mem_hex

bmi mem_err

bclr #$0,d0

move.l d0,m_start

lea mem_2nd,a0

bsr mem_hex

bmi mem_err

bclr #$0,d0

move.l d0,m_stop

cmp.l m_start,d0

bpl choices

move.l #arith,_addr_in

bsr fm_alert

bra its_mem

mem_err:

H1A10:

move.l #alert,_addr_in

bsr fm_alert

bra its_mem

fsel_in:

H1A22:

move.l #directry,_addr_in

move.l #filenm,H4B6E

move.w #$5A,_control

move.l #$2,H4B18

move.l #$20000,H4B1C

bsr aes_it

beq aes_err

tst.w H4B40

beq begin

choices:

H1A64:

lea tree_3,a1

cmpi.w #$3,fil_mem

bne keepall

move.w #$80,x_sym

move.w #$80,db_set

keepall:

H1A84:

move.b directry,d_drive

bsr form_ce

move.w #$0,_int_in

bsr form_di

move.l a1,_addr_in

clr.w _int_in

move.w #$2,H4B20

bsr obj_dr

move.l a1,_addr_in

move.w #$B,_int_in

bsr form_do

move.w d0,d6

move.w #$3,_int_in

bsr form_di

clr.b twice_

subq.w #2,d6

beq begin

subq.b #1,sym_no

neg.b sym_no

lea tree_4,a1

bsr form_ce

move.w #$0,_int_in

bsr form_di

move.l a1,_addr_in

clr.w _int_in

move.w #$1,H4B20

bsr obj_dr

move.w #$3,_int_in

rts

v_clsvw:

H1B24:

move.w #$65,_contrl

clr.w H4B54

clr.w H4B58

bsr vdi_it

appl_ex:

H1B3C:

move.w #$13,_control

move.l #$1,H4B18

clr.l H4B1C

bsr aes_it

rts

What programming language on the ST is this : and what will load it ????

Especially the compiler: Russ


Most ridiculous post ever :shrug:


What do you mean?
Image

User avatar
viking272
Captain Atari
Captain Atari
Posts: 353
Joined: Mon Oct 13, 2008 12:50 pm
Location: west of London, UK

Re: Atari ST Diagnostic Disk (Heavily Protected)

Postby viking272 » Sun Sep 02, 2018 11:57 am

I scrolled 20 mins on my mobile to get here!


Social Media

     

Return to “Applications”

Who is online

Users browsing this forum: No registered users and 5 guests