*********************************************************************** * DoBB V2.11 * --------------------------------------------------------------------- * ® Thursday, 13-07-00, 12:55:49 * --------------------------------------------------------------------- * © Testaware, testaware@arcor.de, Germany * --------------------------------------------------------------------- * Editor: CygnusEd Professional Release 2 © 1989 CygnusSoft Software * Assembler: GenAm Macro Assembler Copyrigth © HiSoft 1985/8 - V2.11D *********************************************************************** opt o+ Output RAM:DoBB *********************************************************************** ;Library Offsets definieren _LVOOpen equ -30 _LVOClose equ -36 _LVORead equ -42 _LVOWrite equ -48 _LVOOutput equ -60 _LVOIoErr equ -132 _LVOAllocMem equ -198 _LVOFreeMem equ -210 _LVOFindTask equ -294 _LVOOpenLibrary equ -552 _LVOCloseLibrary equ -414 _LVOOpenDevice equ -444 _LVOCloseDevice equ -450 _LVODoIO equ -456 _LVORawDoFmt equ -522 *********************************************************************** ;Datenstruktur RsReset MY_Base rs.b 0 my_ParamStr rs.l 1 my_ParamLen rs.l 1 my_FileHnd rs.l 1 my_DosBase rs.l 1 my_DiskReply rs.l 8 my_IOStdReq rs.b 48 my_BootBuffer rs.b 1024 ;BootBlock my_HunkBuffer rs.b 36 ;Hunks (hunk_header+hunk_code) my_FmtBuffer rs.b 400 my_Buffer rs.b 1256 my_SIZEOF rs.w 0 *********************************************************************** ;Macros definieren EXE MACRO move.l 4.w,a6 jsr _LVO\1(a6) ENDM DOS MACRO move.l my_DosBase(a5),a6 jsr _LVO\1(a6) ENDM LIB MACRO jsr _LVO\1(a6) ENDM LAB MACRO jmp _LVO\1(a6) ENDM *********************************************************************** ;Parameter retten, Speicher für Datenstruktur reservieren Start clr.b -1(a0,d0.l) move.l a0,d6 move.l d0,d7 move.l #my_SIZEOF,d0 move.l #$10003,d1 EXE AllocMem tst.l d0 beq Exit movea.l d0,a5 move.l d6,my_ParamStr(a5) move.l d7,my_ParamLen(a5) *********************************************************************** ;Funktionen der dos.library bereitstellen lea DosLib(pc),a1 moveq #0,d0 LIB OpenLibrary move.l d0,my_DosBase(a5) beq Finish *********************************************************************** ;Parametertest nach DFn:, Mindestlänge sowie TrkDev bereitstellen ParamCheck move.l my_ParamStr(a5),a0 move.l my_ParamLen(a5),d0 cmpi.l #6,d0 ;Mindestlänge ble.s 2$ ;Fehler cmpi.b #':',3(a0) ;Test nach DFn: bne.s 2$ ;Fehler move.b 2(a0),d4 ;LW Nummer subi.b #'0',d4 suba.l a1,a1 ;TrkDisk.Dev bereitstellen LIB FindTask lea my_DiskReply(a5),a2 move.l d0,16(a2) lea my_IOStdReq(a5),a1 move.l a2,14(a1) moveq #0,d1 move.l d4,d0 lea TrkDev(pc),a0 LIB OpenDevice tst.l d0 ;Alles geklappt bne.s 1$ ;Nein! Fehler bsr.s DoCommand ;[command] ausführen bra.s 3$ ;Programm beenden 1$ lea TxDErr(pc),a0 ;Fehler aufgetreten bsr Print bra.s 3$ 2$ bsr.s Usage ;Benutzerhinweis 3$ bra Finish ;Programm beenden *********************************************************************** ;[command] auswerten & ausführen (On x Jump) DoCommand move.l my_ParamStr(a5),a0 move.b 5(a0),d0 cmpi.b #'A',d0 blt.s 1$ bclr #5,d0 ;In Großbuchstaben wandeln 1$ lea T_Cmd(pc),a0 ;Tabelle [command] lea T_Lab(pc),a1 ;Tabelle Labels 2$ move.b (a0)+,d1 ;command beq.s Usage ;Ende wenn Null cmp.b d0,d1 ;Vergleich command beq.s 3$ ;Gültig adda.l #4,a1 ;Label erhöhen bra.s 2$ ;Weiter vergleichen 3$ movea.l (a1),a1 ;Label Adresse jmp (a1) ;Direkter Sprung *********************************************************************** ;Keine gültigen Parameter Usage lea TxUsage(pc),a0 bra Print *********************************************************************** ;BootBlock über Output-Channel ausgeben [*] Cmd_X bsr DiskInTest bne.s 4$ bsr ReadBoot lea my_BootBuffer(a5),a0 ;Org. BB lea my_Buffer(a5),a1 ;Buffer für ASCII BB move.l #1023,d0 ;2 × 512 -1 wegen DBra moveq #0,d1 1$ move.b (a0)+,d2 cmpi.b #32,d2 bge.s 2$ move.b #'.',d2 ;D2 < als [Space] dann dot 2$ move.b d2,(a1)+ addq.b #1,d1 cmpi.b #64,d1 ;64 Zeichen pro Zeile bne.s 3$ moveq #0,d1 move.b #10,(a1)+ ;Linefeed übergeben 3$ dbra d0,1$ clr.b (a1) ;Mit Null abschließen lea my_Buffer(a5),a0 bsr Print lea my_Buffer(a5),a1 lea my_BootBuffer(a5),a2 clr.w (a1) move.b 3(a2),1(a1) ;DOS move.l 4(a2),2(a1) ;CheckSumme move.l 8(a2),6(a1) ;Root bsr CalcBBSize move.l d0,10(a1) ;Länge lea TxInfo(pc),a0 bra FmtStr 4$ rts *********************************************************************** ;Standart DOS 1.3 BootBlock [1] Cmd_1 bsr DiskInWpTest bne.s 1$ moveq #LN_OS1/4-1,d0 lea BB_OS1(pc),a0 bra WriteBoot 1$ rts *********************************************************************** ;Standart DOS 2.0 BootBlock [2] Cmd_2 bsr DiskInWpTest bne.s 1$ moveq #LN_OS2/4-1,d0 lea BB_OS2(pc),a0 bra WriteBoot 1$ rts *********************************************************************** ;Standart DOS 3.0 BootBlock [3] Cmd_3 bsr DiskInWpTest bne.s 1$ moveq #LN_OS3/4-1,d0 lea BB_OS3(pc),a0 bra WriteBoot 1$ rts *********************************************************************** ;CheckSumme von BootBlock neu berechnen [C] Cmd_C bsr DiskInWpTest bne.s 1$ bsr ReadBoot bsr CalcBBCkSum lea my_BootBuffer(a5),a0 move.l d0,4(a0) moveq #2,d0 bra WriteBoot 1$ rts *********************************************************************** ;DOS markierter BootBlock [D] Cmd_D bsr DiskInWpTest bne.s 1$ moveq #0,d0 lea BB_OS1(pc),a0 bra WriteBoot 1$ rts *********************************************************************** ;BootBlock ausführen [E] Cmd_E bsr DiskInTest bne.s 1$ bsr ReadBoot movem.l a0-a6/d0-d7,-(sp) jsr my_BootBuffer+12(a5) ;VORSICHT! BB ausführen movem.l (sp)+,a0-a6/d0-d7 1$ rts *********************************************************************** ;BootBlock formatieren & in Datei schreiben [F] Cmd_F bsr DiskInTest bne.s 1$ bsr ReadBoot bsr GetName move.l #1006,d2 DOS Open move.l d0,my_FileHnd(a5) beq FileErr bsr CalcBBSize ;BB Size ermitteln move.l d0,d3 move.l my_FileHnd(a5),d1 lea my_BootBuffer(a5),a0 move.l a0,d2 LIB Write move.l my_FileHnd(a5),d1 LIB Close 1$ rts *********************************************************************** ;Datei in BootBlock installieren, evtl. zuvor Hunks entfernen [I] Cmd_I bsr DiskInWpTest bne 6$ bsr GetName move.l #1005,d2 DOS Open move.l d0,my_FileHnd(a5) beq FileErr move.l my_FileHnd(a5),d1 lea my_BootBuffer(a5),a0 move.l a0,d2 move.l #1060,d3 ;BootBlock + Hunks LIB Read move.l my_FileHnd(a5),d1 LIB Close lea my_BootBuffer(a5),a0 cmpi.l #$000003F3,(a0) ;hunk_header vorhanden bne.s 5$ ;Nein! Dann Datenformat 1$ cmpi.l #$000003E9,(a0)+ ;hunk_code suchen bne.s 1$ move.l (a0)+,d0 ;Anzahl der Longs subq.l #1,d0 ;-1 wegen dbf cmpi.l #255,d0 ;Größer als 255 (1024)? ble.s 2$ ;Nein! move.l #255,d0 ;Max. 255 Longs kopieren! 2$ lea my_Buffer(a5),a1 ;Ersatzbuffer 3$ move.l (a0)+,(a1)+ ;BootBlock kopieren dbf d0,3$ lea my_Buffer(a5),a0 lea my_BootBuffer(a5),a1 move.l #255,d0 4$ move.l (a0)+,(a1)+ dbf d0,4$ 5$ bsr CalcBBCkSum lea my_BootBuffer(a5),a0 move.l d0,4(a0) ;CheckSumme eintragen move.l #255,d0 bra WriteBoot 6$ rts *********************************************************************** ;Quartex Utility Boot V2.0 [Q] Cmd_Q bsr DiskInWpTest bne.s 1$ move.l #LN_QTX/4-1,d0 lea BB_QTX(pc),a0 bra WriteBoot 1$ rts *********************************************************************** ;BootBlock in Datei schreiben [R] Cmd_R bsr DiskInTest bne.s 1$ bsr ReadBoot bsr GetName move.l #1006,d2 DOS Open move.l d0,my_FileHnd(a5) beq FileErr move.l my_FileHnd(a5),d1 lea my_BootBuffer(a5),a0 move.l a0,d2 move.l #1024,d3 LIB Write move.l my_FileHnd(a5),d1 LIB Close 1$ rts *********************************************************************** ;Testen nach un/bekannten BootBlock [T] Cmd_T bsr DiskInTest bne.s 5$ bsr ReadBoot lea my_BootBuffer(a5),a0 clr.b 3(a0) ;OS auf Null cmpi.l #$444F5300,(a0)+ ;DOS Kennung bne.s 2$ ;Nein! lea T_CkSm(pc),a1 ;CheckSum-Tabelle 1$ move.l (a1)+,d0 cmp.l (a0),d0 ;CkSum = BBCkSum? beq.s 3$ ;Ja! tst.l d0 ;Nullwert? bne.s 1$ ;Nein, weiter! 2$ lea TxUBoot(pc),a0 bra.s 4$ 3$ lea TxNBoot(pc),a0 4$ bra Print 5$ rts *********************************************************************** ;Voodoo Star Boot [V] Cmd_V bsr DiskInWpTest bne.s 4$ move.l my_ParamLen(a5),d0 subi.l #7,d0 cmpi.l #26,d0 ble.s 0$ moveq.l #26,d0 0$ move.l d0,d1 lsr.l #1,d0 sub.l d0,d1 bsr GetName movea.l d1,a0 lea TX_VDO(pc),a1 adda.l #14,a1 suba.l d0,a1 1$ tst.b (a0) beq.s 2$ move.b (a0)+,(a1)+ bra.s 1$ 2$ lea BB_VDO(pc),a0 lea my_BootBuffer(a5),a1 move.l #LN_VDO/4-1,d0 3$ move.l (a0)+,(a1)+ dbf d0,3$ bsr.s CalcBBCkSum lea my_BootBuffer(a5),a0 move.l d0,4(a0) moveq #0,d0 bra.s WriteBoot 4$ rts *********************************************************************** ;Checksumme von BootBlock löschen [Z] Cmd_Z bsr DiskInWpTest bne.s 1$ bsr.s ReadBoot moveq #2,d0 lea my_BootBuffer(a5),a0 clr.l 4(a0) bra.s WriteBoot 1$ rts *********************************************************************** ;Formatierte Länge von BootBlock ermitteln ;D0.l => Size CalcBBSize lea my_BootBuffer+1024(a5),a0 move.l #1024,d0 1$ tst.b -(a0) bne.s 2$ subq.l #1,d0 bne.s 1$ 2$ rts *********************************************************************** ;Checksumme des BootBlock ermitteln ;D0.l => CheckSum CalcBBCkSum lea my_BootBuffer(a5),a0 clr.l 4(a0) moveq #0,d0 move.w #255,d1 1$ add.l (a0)+,d0 bcc.s 2$ addq.l #1,d0 2$ dbf d1,1$ not.l d0 rts *********************************************************************** ;Daten von BootBlock auf Disk schreiben ;A0 <= Adresse der BootBlock-Daten ;D0 <= Anzahl der zu kopierenden Longs WriteBoot lea my_IOStdReq(a5),a1 lea my_BootBuffer(a5),a2 movea.l a2,a3 1$ move.l (a0)+,(a2)+ dbf d0,1$ move.w #3,28(a1) move.l #1024,36(a1) move.l a3,40(a1) move.l #0,44(a1) EXE DoIO move.w #4,28(a1) LAB DoIO *********************************************************************** ;BootBlock einlesen ReadBoot lea my_IOStdReq(a5),a1 lea my_BootBuffer(a5),a0 move.w #2,28(a1) move.l #1024,36(a1) move.l a0,40(a1) move.l #0,44(a1) EXE DoIO rts *********************************************************************** ;Test ob Diskette eingelegt oder schreibgeschützt FLAG<>0 = False DiskInWpTest bsr.s DiskInTest bne.s 1$ bra.s DiskWpTest 1$ rts *********************************************************************** ;Test ob Diskette eingelegt FLAG<>0 = False DiskInTest lea my_IOStdReq(a5),a1 move.w #14,28(a1) EXE DoIO tst.l 32(a1) beq.s 1$ lea TxNDisk(pc),a0 bsr.s Print 1$ tst.l 32(a1) ;FLAG setzen rts *********************************************************************** ;Test ob Diskette schreibgeschützt FLAG<>0 = False DiskWpTest lea my_IOStdReq(a5),a1 move.w #15,28(a1) EXE DoIO tst.l 32(a1) beq.s 1$ lea TxPDisk(pc),a0 bsr.s Print 1$ tst.l 32(a1) ;FLAG setzen rts *********************************************************************** ;Dateinamen ermitteln ;D1 => Name GetName move.l my_ParamStr(a5),d1 addq.l #7,d1 rts *********************************************************************** ;Datei konnte nicht geöffnet werden FileErr DOS IoErr lea my_Buffer(a5),a1 move.l d0,4(a1) bsr.s GetName move.l d1,(a1) lea TxFErr(pc),a0 *********************************************************************** ;String-Kette mit Formatelementen formatieren & ausgeben ;A0 <= Ausgabe-String der Formatdaten ;A1 <= Formatdaten für Ausgabe-String FmtStr lea 1$(pc),a2 lea my_FmtBuffer(a5),a3 EXE RawDoFmt lea my_FmtBuffer(a5),a0 bra.s Print 1$ move.b d0,(a3)+ rts *********************************************************************** ;Textausgabe » NULL Byte Test « A0 = TextPtr Print move.l a0,d2 moveq #0,d3 1$ tst.b (a0)+ beq.s 2$ addq.l #1,d3 bra.s 1$ 2$ DOS Output move.l d0,d1 LAB Write *********************************************************************** ;Programmende Finish move.l $4.w,a6 ;ExecBase move.l my_DosBase(a5),d0 ;DosLib beq.s 1$ ;Konnte nicht geöffnet werden movea.l d0,a1 LIB CloseLibrary 1$ lea my_IOStdReq(a5),a1 ;DeviceStruc tst.w 28(a1) ;Wurde Kommando übergeben beq.s 2$ ;Nein! Fehler aufgetreten move.w #9,28(a1) move.l #0,36(a1) LIB DoIO LIB CloseDevice 2$ move.l #my_SIZEOF,d0 ;DatenStruc freigeben movea.l a5,a1 LIB FreeMem Exit moveq.l #0,d0 ;Kein Error-Return-Code RTS *********************************************************************** ;Daten/Speicherreservierung TxUsage dc.b 10 dc.b 'Usage: ',$9B,'33mDoBB',$9B,'0m [drive command (file) (text)]',10,10 dc.b ' Where [drive] is DFn: and [command] is:',10,10 dc.b ' I file - install file to boot',10 dc.b ' F file - format boot to file',10 dc.b ' R file - read boot to file',10,10 dc.b ' V text - install Voodoo boot & textline',10,10 dc.b ' 1 - DOS V1.3 boot C - calculate checksum',10 dc.b ' 2 - DOS V2.0 boot E - execute bootprogram',10 dc.b ' 3 - DOS V3.0 boot T - test for un/known boot',10 dc.b ' D - DOS mark only Z - zero checksum of boot',10 dc.b ' Q - Quartex boot * - display boot of drive',10,10 dc.b $9B,'33mDoBB',$9B,'0m V2.11',$9B,'33m FD',$9B,'0m © 2000 by V.Stepprath, Testaware',10,10,0 TxInfo dc.b $9B,'33;42mDoBB V2.11 DOS:%d CkSum:$%08lx Root:%04ld Size:%04ld',$9B,'0m',10,0 TxDErr dc.b 'Drive not available',10,0 TxNDisk dc.b 'No disk in drive',10,0 TxPDisk dc.b 'Disk is write protected',10,0 TxFErr dc.b 'Can`t open %s - Error code %ld',10,0 TxNBoot dc.b 'Normal bootblock',10,0 TxUBoot dc.b 'Unknown bootblock',10,0 T_Cmd dc.b '*','1','2','3','C','D','E','F','I','V','Q','R','T','Z',0,0 T_Lab dc.l Cmd_X,Cmd_1,Cmd_2,Cmd_3,Cmd_C,Cmd_D,Cmd_E,Cmd_F,Cmd_I dc.l Cmd_V,Cmd_Q,Cmd_R,Cmd_T,Cmd_Z T_CkSm dc.l $C0200F19 ;DOS1.3 dc.l $C6D52AD5 ;DOS2.0 dc.l $E33D0E70 ;DOS3.0 dc.l $1C2238A9 ;Quartex dc.l $00000000 ;None BB_OS1 dc.l $444F5300,$C0200F19,$00000370,$43FA0018,$4EAEFFA0,$4A80670A dc.l $20402068,$00167000,$4E7570FF,$60FA646F,$732E6C69,$62726172 dc.l $79000000 LN_OS1 equ *-BB_OS1 BB_OS2 dc.l $444F5300,$C6D52AD5,$00000370,$43FA0032,$70254EAE,$FDD84A80 dc.l $670C2240,$08E90006,$00224EAE,$FE6243FA,$002A4EAE,$FFA04A80 dc.l $670A2040,$20680016,$70004E75,$70FF4E75,$65787061,$6E73696F dc.l $6E2E6C69,$62726172,$7900646F,$732E6C69,$62726172,$79000000 LN_OS2 equ *-BB_OS2 BB_OS3 dc.l $444F5303,$E33D0E70,$00000370,$43FA003E,$70254EAE,$FDD84A80 dc.l $670C2240,$08E90006,$00224EAE,$FE6243FA,$00184EAE,$FFA04A80 dc.l $670A2040,$20680016,$70004E75,$70FF4E75,$646F732E,$6C696272 dc.l $61727900,$65787061,$6E73696F,$6E2E6C69,$62726172,$79000000 LN_OS3 equ *-BB_OS3 BB_VDO dc.l $444F5300,$00000000,$00000370,$48E7FFFE,$6100003C,$4CDF7FFF dc.l $2C790000,$000443FA,$00104EAE,$FFA02040,$20680016,$70004E75 dc.l $646F732E,$6C696272,$61727900,$4F61645C,$183B6768,$685D6A1F dc.l $6B18455D,$5F5948E7,$FFFE6100,$00084CDF,$7FFF4E75,$33FC8380 dc.l $00DFF096,$33FC4000,$00DFF09A,$207C0003,$2000303C,$28004298 dc.l $51C8FFFC,$2C790000,$000443FA,$01904EAE,$FE6841FA,$019A2080 dc.l $4A806600,$00044E75,$2C40227C,$00031000,$4EAEFF3A,$207C0003 dc.l $1064217C,$00038000,$0008103C,$0001323C,$0140343C,$01004EAE dc.l $FE7A23FC,$00031064,$00031004,$323C0082,$303C0019,$227C0003 dc.l $10004EAE,$FF10103C,$00014EAE,$FEAA41FA,$0220303C,$001B4EAE dc.l $FFC4207C,$00042000,$43FA018A,$45FA0206,$10D9B3CA,$6600FFFA dc.l $33FC0020,$00DFF096,$207C0004,$200023C8,$00DFF080,$363C0045 dc.l $207C0004,$40006100,$010230C0,$610000FC,$30C06100,$00F60240 dc.l $01FF30C0,$51CBFFE8,$287C0004,$4000363C,$00452A7C,$00043000 dc.l $381C3A1C,$3C14045C,$00024A46,$6F0000E6,$48C489C6,$064400A0 dc.l $48C58BC6,$06450080,$4A446D00,$00D04A45,$6D0000CA,$0C44013F dc.l $6E0000C2,$0C4500FF,$6E0000BA,$30153AC4,$32153AC5,$610000C8 dc.l $30043205,$C2FC0028,$3400E642,$D242E742,$94405302,$0C460190 dc.l $6E080C46,$012C6E0E,$6018227C,$00032000,$D3C105D1,$6020227C dc.l $00035000,$D3C105D1,$6014227C,$00032000,$D3C105D1,$227C0003 dc.l $5000D3C1,$05D151CB,$FF680839,$000600BF,$E0016600,$FF4C33FC dc.l $C00000DF,$F09A2C7A,$002623EE,$002600DF,$F08033FC,$FFEC00DF dc.l $F0964E75,$67726170,$68696373,$2E6C6962,$72617279,$00000008 dc.l $1E3E3039,$00DFF006,$47FA00D4,$C1D30640,$124948C0,$47FA00C8 dc.l $36804E75,$99FC0000,$00066100,$FFDE38C0,$6100FFD8,$38C038FC dc.l $02586000,$FF8AC2FC,$00283400,$E642D242,$E7429440,$5302227C dc.l $00032000,$D3C10591,$227C0003,$5000D3C1,$05914E75,$01800000 dc.l $01820335,$01840668,$01860AAC,$018A002F,$018C002F,$01000200 dc.l $01040024,$008E0581,$009040C1,$00920038,$009400D0,$01020000 dc.l $01080000,$010A0000,$00E00003,$00E22000,$00E40003,$00E65000 dc.l $00E80003,$00EA8000,$2C01FFFE,$01003200,$9E01FFFE,$018E002F dc.l $0188002F,$FFDFFFFE,$01880444,$018E0445,$2B01FFFE,$01000200 dc.l $FFFFFFFE,$0FFA98FF TX_VDO dc.l $20202020,$20202020,$20202020,$20202020,$20202020,$20202020 dc.l $20202000 LN_VDO equ *-BB_VDO BB_QTX dc.l $444F5300,$1C2238A9,$00000370,$48E7FF7E,$70026100,$022E7009 dc.l $42A90024,$6100023A,$41FA03CC,$22690014,$20A9003C,$22690038 dc.l $2F0943FA,$02B8303C,$4E20222E,$003E0481,$00080004,$6B043340 dc.l $001E4AAE,$004E6704,$3340000A,$43FA02B6,$207A0394,$41E80034 dc.l $4A986604,$33400008,$4A986604,$33400012,$4A986604,$3340001C dc.l $4AAE002A,$660C4AAE,$002E6606,$4AAE022A,$671A43FA,$03237020 dc.l $1340001A,$12C012BC,$004145FA,$02D424FC,$56495249,$43F90007 dc.l $80002449,$4299B3FC,$0007F000,$66F62C57,$33FC01A0,$00DFF096 dc.l $43FA01CE,$2D490032,$41F90007,$1000214A,$00087001,$223C0000 dc.l $0300243C,$00000100,$4EAEFE7A,$43F90007,$11004EAE,$FF3A43F9 dc.l $00071100,$237C0007,$10000004,$70014EAE,$FEAA4BFA,$01C87800 dc.l $7632181D,$672E610E,$06830000,$01806106,$4BED001F,$60E843F9 dc.l $00071100,$20032204,$4EAEFF10,$43F90007,$1100204D,$701F4EAE dc.l $FFC44E75,$33FC8380,$00DFF096,$283C000F,$F0002C78,$00045384 dc.l $670000B8,$43FA025A,$0C110041,$661243FA,$01663011,$02400F00 dc.l $06400100,$32805284,$4BF900BF,$E0010815,$00066700,$008E102D dc.l $0C00422D,$0C004600,$B03C00A0,$670000D4,$B03C00A2,$660A203C dc.l $00080000,$600000C8,$B03C00A4,$66164BF9,$00FC00D0,$42AE0026 dc.l $4EAEFFE2,$41F80002,$4E704ED0,$B03C00A6,$6738B03C,$00A86606 dc.l $4BFAFFEA,$60DEB03C,$00AA6756,$B03C00AC,$66040855,$0001B03C dc.l $00AE6612,$47FA020C,$32130841,$00053681,$33C100DF,$F1DC6000 dc.l $FF52207A,$01F241E8,$003470FF,$20C020C0,$20806112,$43FA01E6 dc.l $4EAEFFA0,$20402068,$00167000,$4E75205F,$588F4CDF,$7EFF2F08 dc.l $4E7561F2,$700541F9,$00050000,$610C7003,$61087004,$61046000 dc.l $FDCC41F9,$00030000,$23480028,$237C0000,$04000024,$42A9002C dc.l $3340001C,$4EAEFE38,$4E75202E,$003E204E,$4BF900FC,$02800C65 dc.l $21FC66FA,$99CC4DF8,$06762640,$43F900DF,$F096203C,$7FFF7FFF dc.l $22C022C0,$4EE8FFE2,$01002200,$01020001,$00920020,$009400D8 dc.l $008E3000,$009030FF,$00E00007,$00E28870,$00E40007,$00E688A0 dc.l $01860AAA,$01840EEE,$01820777,$01800002,$FFFFFFFE,$223C3C3C dc.l $3C3C3C20,$5554494C,$49545920,$424F4F54,$2056322E,$30203E3E dc.l $3E3E3E3E,$35464153,$544D454D,$3A4F4646,$20202020,$20203120 dc.l $4D454720,$43484950,$3A4F4646,$2C202044,$46313A4F,$46462020 dc.l $20444632,$3A4F4646,$20202044,$46333A4F,$46462020,$43463120 dc.l $46415354,$4D454D20,$4F464620,$46322043,$4849502F,$46415354 dc.l $204F4646,$4C463320,$414C4C20,$4D454D20,$4F4E2020,$4634204B dc.l $494C4C20,$44524956,$45532120,$55463520,$48415244,$20524553 dc.l $45542020,$46362049,$4E535441,$4C4C2042,$4F4F5420,$5E463720 dc.l $544F4747,$4C45204C,$45442020,$46382054,$4F472050,$414C2F4E dc.l $54534320,$6C20204E,$4F205649,$52555320,$48415320,$4245454E dc.l $20444554,$45435445,$44212020,$75424F4F,$54204259,$20204E2E dc.l $4F2E4D2E,$412E4420,$204F4620,$51554152,$54455821,$00000000 dc.l $00000000 DosLib dc.b 'dos.library',0 LN_QTX equ *-BB_QTX TrkDev dc.b 'trackdisk.device',0 END