Mercurial > hg > Members > kono > nitros9-code
changeset 1109:5a9158e64763
Original disassembly and commenting. Assembles byte for byte to original.
author | pwz |
---|---|
date | Thu, 10 Apr 2003 18:34:26 +0000 |
parents | b1a142047a50 |
children | a0381320f4b1 |
files | 3rdparty/packages/subsim/sub1.asm |
diffstat | 1 files changed, 2984 insertions(+), 707 deletions(-) [+] |
line wrap: on
line diff
--- a/3rdparty/packages/subsim/sub1.asm Thu Apr 10 16:20:42 2003 +0000 +++ b/3rdparty/packages/subsim/sub1.asm Thu Apr 10 18:34:26 2003 +0000 @@ -1,708 +1,2985 @@ +******************************************************************** +* sub1 - Sub Battle Simulator +* +* $Id$ +* +* Ed. Comments Who YY/MM/DD +* ------------------------------------------------------------------ +* 0 Disassembly of original distribution PWZ 03/03/29 +* There is a lot of extraneous and unneccessary +* instructions through out the code. +* But since we use the jump table at module enter +* be careful when removing any thing and adjust +* it accordingly +* No explicit edition byte in source -L0000 fcb $87,$CD,$16,$14,$00,$0D,$21,$81 .M....!. -L0008 fcb $1A,$00,$11,$00,$00,$73,$75,$62 .....sub -L0010 fcb $B1,$30,$8D,$00,$07,$EC,$85,$BE 10...l.> -L0018 fcb $01,$07,$6E,$8B,$00,$23,$0F,$C5 ..n..#.E -L0020 fcb $0A,$05,$08,$80,$08,$BC,$04,$68 .....<.h -L0028 fcb $0B,$42,$05,$47,$0D,$F1,$12,$43 .B.G.q.C -L0030 fcb $14,$5C,$0E,$3C,$17,$0D,$A6,$CC .\.<..&L -L0038 fcb $00,$73,$FD,$1D,$AF,$CC,$00,$F4 .s../L.t -L0040 fcb $FD,$1D,$AD,$86,$01,$30,$8D,$15 ..-..0.. -L0048 fcb $B9,$10,$3F,$84,$34,$02,$8E,$01 9.?.4... -L0050 fcb $26,$10,$8E,$01,$69,$10,$3F,$89 &...i.?. -L0058 fcb $35,$02,$10,$3F,$8F,$86,$01,$30 5..?...0 -L0060 fcb $8D,$14,$9F,$10,$3F,$84,$34,$02 ....?.4. -L0068 fcb $8E,$00,$00,$10,$8E,$00,$00,$CE .......N -L0070 fcb $01,$03,$10,$3F,$88,$8E,$4D,$3F ...?..M? -L0078 fcb $10,$8E,$03,$08,$A6,$E4,$10,$3F ....&d.? -L0080 fcb $89,$35,$02,$10,$3F,$8F,$7C,$4C .5..?.|L -L0088 fcb $75,$17,$00,$6D,$17,$01,$F2,$17 u..m..r. -L0090 fcb $06,$5B,$17,$00,$23,$17,$03,$65 .[..#..e -L0098 fcb $17,$04,$EF,$17,$05,$EF,$86,$02 ..o..o.. -L00A0 fcb $B7,$05,$CE,$CC,$00,$04,$FD,$1D 7.NL.... -L00A8 fcb $44,$CC,$12,$34,$FD,$1D,$3F,$FD DL.4..?. -L00B0 fcb $1D,$41,$16,$0B,$8D,$10,$3F,$06 .A....?. -L00B8 fcb $34,$76,$86,$01,$7D,$4C,$75,$26 4v..}Lu& -L00C0 fcb $0A,$30,$8D,$14,$7C,$10,$8E,$0A .0..|... -L00C8 fcb $9D,$20,$08,$30,$8D,$14,$81,$10 . .0.... -L00D0 fcb $8E,$09,$4E,$34,$20,$10,$3F,$84 ..N4 .?. -L00D8 fcb $10,$AE,$E4,$34,$02,$8E,$1E,$25 ..d4...% -L00E0 fcb $A6,$E4,$10,$3F,$89,$35,$02,$10 &d.?.5.. -L00E8 fcb $3F,$8F,$35,$20,$31,$3F,$8E,$1E ?.5 1?.. -L00F0 fcb $25,$CE,$05,$CF,$17,$0C,$75,$35 %N.O..u5 -L00F8 fcb $F6,$34,$76,$17,$0B,$2C,$7F,$4D v4v..,M -L0100 fcb $27,$86,$01,$30,$8D,$13,$C9,$10 '..0..I. -L0108 fcb $3F,$84,$B7,$1D,$D9,$17,$00,$8A ?.7.Y... -L0110 fcb $F6,$02,$A3,$86,$33,$3D,$1F,$03 v.#.3=.. -L0118 fcb $8E,$00,$00,$B6,$1D,$D9,$10,$3F ...6.Y.? -L0120 fcb $88,$8E,$4C,$8A,$10,$8E,$00,$33 ..L....3 -L0128 fcb $B6,$1D,$D9,$10,$3F,$89,$B6,$1D 6.Y.?.6. -L0130 fcb $D9,$10,$3F,$8F,$F6,$4C,$A8,$5A Y.?.vL(Z -L0138 fcb $58,$30,$8D,$14,$A2,$EC,$85,$FB X0.."l.. -L0140 fcb $4C,$A9,$89,$00,$FD,$1E,$17,$F6 L).....v -L0148 fcb $4C,$AA,$F7,$1E,$16,$F6,$4C,$AB L*w..vL+ -L0150 fcb $7D,$4C,$76,$26,$05,$17,$00,$C3 }Lv&...C -L0158 fcb $C6,$10,$F7,$4D,$22,$7D,$4C,$76 F.wM"}Lv -L0160 fcb $27,$2A,$F6,$4C,$A0,$10,$2B,$00 '*vL .+. -L0168 fcb $2F,$86,$09,$3D,$30,$8D,$14,$27 /..=0..' -L0170 fcb $30,$8B,$10,$8E,$4C,$63,$8D,$16 0...Lc.. -L0178 fcb $F6,$4C,$A1,$2B,$1B,$86,$09,$3D vL!+...= -L0180 fcb $30,$8D,$14,$13,$30,$8B,$10,$8E 0...0... -L0188 fcb $4C,$6C,$8D,$02,$35,$F6,$86,$09 Ll..5v.. -L0190 fcb $E6,$80,$E7,$A0,$4A,$26,$F9,$39 f.g J&y9 -L0198 fcb $35,$F6,$34,$76,$F6,$4C,$76,$C1 5v4vvLvA -L01A0 fcb $02,$10,$27,$00,$5E,$7D,$4C,$76 ..'.^}Lv -L01A8 fcb $26,$0F,$C6,$24,$F7,$02,$A3,$F7 &.F$w.#w -L01B0 fcb $4D,$3B,$86,$01,$B7,$4C,$75,$35 M;..7Lu5 -L01B8 fcb $F6,$F6,$1E,$16,$F1,$4D,$3D,$26 vv..qM=& -L01C0 fcb $16,$F6,$4C,$75,$F1,$4D,$3C,$26 .vLuqM<& -L01C8 fcb $0E,$F6,$02,$A3,$5C,$F1,$4D,$3B .v.#\qM; -L01D0 fcb $27,$05,$F7,$02,$A3,$35,$F6,$F6 '.w.#5vv -L01D8 fcb $4C,$75,$F7,$4D,$3C,$F6,$1E,$16 LuwM<v.. -L01E0 fcb $F7,$4D,$3D,$C0,$27,$B6,$4C,$75 wM=@'6Lu -L01E8 fcb $81,$00,$26,$06,$30,$8D,$00,$1B ..&.0... -L01F0 fcb $20,$04,$30,$8D,$00,$1D,$A6,$85 .0...&. -L01F8 fcb $B7,$02,$A3,$5C,$A6,$85,$B7,$4D 7.#\&.7M -L0200 fcb $3B,$35,$F6,$7C,$02,$A3,$7C,$4D ;5v|.#|M -L0208 fcb $3B,$35,$F6,$00,$02,$09,$0F,$15 ;5v..... -L0210 fcb $1B,$21,$24,$00,$00,$00,$24,$2E .!$...$. -L0218 fcb $32,$39,$3C,$34,$76,$C6,$FF,$8E 29<4vF.. -L0220 fcb $4C,$8A,$E7,$80,$8C,$4C,$A4,$25 L.g..L$% -L0228 fcb $F9,$CC,$00,$00,$FD,$4C,$A4,$FD yL...L$. -L0230 fcb $4C,$A6,$7F,$4C,$90,$C6,$05,$F7 L&L.F.w -L0238 fcb $4C,$B1,$C6,$10,$F7,$4C,$AB,$7F L1F.wL+ -L0240 fcb $4C,$B3,$7F,$4C,$B4,$8E,$05,$79 L3L4..y -L0248 fcb $C6,$06,$E7,$01,$86,$60,$A7,$02 F.g..`'. -L0250 fcb $B7,$1D,$F6,$CC,$00,$64,$ED,$03 7.vL.dm. -L0258 fcb $86,$7F,$A7,$05,$B7,$1D,$F9,$CC .'.7.yL -L0260 fcb $3F,$FF,$ED,$06,$6F,$88,$12,$6F ?.m.o..o -L0268 fcb $08,$30,$0A,$CC,$01,$08,$A7,$80 .0.L..'. -L0270 fcb $5A,$26,$FB,$7F,$02,$96,$CC,$03 Z&...L. -L0278 fcb $20,$FD,$1D,$6D,$17,$01,$FA,$35 ..m..z5 -L0280 fcb $F6,$34,$76,$86,$FF,$B7,$02,$95 v4v..7.. -L0288 fcb $86,$01,$30,$8D,$12,$63,$10,$3F ..0..c.? -L0290 fcb $84,$B7,$1D,$D9,$B6,$4C,$B1,$C6 .7.Y6L1F -L0298 fcb $22,$3D,$8E,$00,$00,$1F,$03,$B6 "=.....6 -L02A0 fcb $1D,$D9,$10,$3F,$88,$8E,$4C,$CC .Y.?..LL -L02A8 fcb $10,$8E,$00,$22,$B6,$1D,$D9,$10 ..."6.Y. -L02B0 fcb $3F,$89,$B6,$4C,$B2,$C6,$0D,$3D ?.6L2F.= -L02B8 fcb $C3,$00,$CC,$8E,$00,$00,$1F,$03 C.L..... -L02C0 fcb $B6,$1D,$D9,$10,$3F,$88,$8E,$4C 6.Y.?..L -L02C8 fcb $BD,$10,$8E,$00,$0D,$B6,$1D,$D9 =....6.Y -L02D0 fcb $10,$3F,$89,$B6,$4C,$75,$81,$00 .?.6Lu.. -L02D8 fcb $27,$05,$CE,$01,$34,$20,$03,$CE '.N.4 .N -L02E0 fcb $01,$AC,$8E,$00,$00,$B6,$1D,$D9 .,...6.Y -L02E8 fcb $10,$3F,$88,$8E,$05,$01,$10,$8E .?...... -L02F0 fcb $00,$78,$B6,$1D,$D9,$10,$3F,$89 .x6.Y.?. -L02F8 fcb $B6,$4C,$75,$81,$00,$27,$05,$CE 6Lu..'.N -L0300 fcb $02,$24,$20,$03,$CE,$02,$A2,$8E .$ .N.". -L0308 fcb $00,$00,$B6,$1D,$D9,$10,$3F,$88 ..6.Y.?. -L0310 fcb $8E,$02,$B7,$10,$8E,$00,$7E,$B6 ..7...~6 -L0318 fcb $1D,$D9,$10,$3F,$89,$B6,$1D,$D9 .Y.?.6.Y -L0320 fcb $10,$3F,$8F,$8E,$4A,$80,$CE,$02 .?..J.N. -L0328 fcb $B7,$C6,$06,$34,$04,$6F,$00,$A6 7F.4.o.& -L0330 fcb $41,$A7,$03,$EC,$42,$ED,$04,$A6 A'.lBm.& -L0338 fcb $44,$A7,$06,$EC,$45,$ED,$07,$CC D'.lEm.L -L0340 fcb $00,$00,$ED,$01,$ED,$09,$30,$88 ..m.m.0. -L0348 fcb $15,$33,$C8,$15,$6A,$E4,$26,$DD .3H.jd&] -L0350 fcb $35,$04,$86,$05,$17,$00,$96,$F6 5......v -L0358 fcb $1E,$16,$7D,$4C,$75,$10,$26,$00 ..}Lu.&. -L0360 fcb $39,$C1,$27,$26,$12,$86,$02,$17 9A'&.... -L0368 fcb $00,$83,$86,$03,$17,$00,$7E,$86 ......~. -L0370 fcb $04,$17,$00,$79,$16,$00,$74,$C1 ...y..tA -L0378 fcb $28,$26,$18,$86,$02,$17,$00,$6D (&.....m -L0380 fcb $FC,$1E,$17,$10,$83,$00,$5A,$10 ......Z. -L0388 fcb $2E,$00,$60,$86,$03,$17,$00,$5D ..`....] -L0390 fcb $16,$00,$58,$C1,$29,$26,$03,$16 ..XA)&.. -L0398 fcb $00,$51,$C1,$2A,$26,$03,$16,$00 .QA*&... -L03A0 fcb $4A,$C1,$2B,$26,$0D,$7D,$4C,$75 JA+&.}Lu -L03A8 fcb $27,$41,$86,$04,$17,$00,$3E,$16 'A....>. -L03B0 fcb $00,$39,$C1,$2C,$26,$24,$7D,$4C .9A,&$}L -L03B8 fcb $75,$10,$26,$00,$2E,$FC,$1E,$17 u.&..... -L03C0 fcb $10,$83,$00,$99,$10,$23,$00,$23 .....#.# -L03C8 fcb $86,$02,$17,$00,$20,$86,$04,$17 .... ... -L03D0 fcb $00,$1B,$86,$03,$17,$00,$16,$16 ........ -L03D8 fcb $00,$11,$7D,$4C,$75,$27,$E9,$86 ..}Lu'i. -L03E0 fcb $05,$C6,$15,$3D,$8E,$4A,$80,$30 .F.=.J.0 -L03E8 fcb $8B,$6F,$00,$35,$F6,$34,$76,$C6 .o.5v4vF -L03F0 fcb $15,$3D,$8E,$4A,$80,$30,$8B,$86 .=.J.0.. -L03F8 fcb $FF,$A7,$00,$35,$F6,$34,$76,$B6 .'.5v4v6 -L0400 fcb $4C,$76,$26,$02,$35,$F6,$30,$8D Lv&.5v0. -L0408 fcb $10,$B6,$86,$01,$10,$3F,$84,$B7 .6...?.7 -L0410 fcb $1D,$D9,$8E,$4C,$90,$10,$8E,$05 .Y.L.... -L0418 fcb $79,$C6,$04,$34,$04,$E6,$80,$10 yF.4.f.. -L0420 fcb $2B,$00,$45,$86,$16,$3D,$1F,$03 +.E..=.. -L0428 fcb $34,$30,$8E,$00,$00,$B6,$1D,$D9 40...6.Y -L0430 fcb $10,$3F,$88,$AE,$62,$10,$8E,$00 .?..b... -L0438 fcb $16,$B6,$1D,$D9,$10,$3F,$89,$35 .6.Y.?.5 -L0440 fcb $30,$C6,$03,$34,$04,$E6,$22,$CB 0F.4.f"K -L0448 fcb $3B,$7D,$4C,$75,$27,$02,$CB,$15 ;}Lu'.K. -L0450 fcb $E7,$22,$E6,$25,$CB,$27,$7D,$4C g"f%K'}L -L0458 fcb $75,$27,$02,$CB,$0B,$E7,$25,$31 u'.K.g%1 -L0460 fcb $21,$35,$04,$5A,$26,$DD,$31,$3D !5.Z&]1= -L0468 fcb $31,$A8,$16,$6A,$E4,$26,$AE,$35 1(.jd&.5 -L0470 fcb $04,$B6,$1D,$D9,$10,$3F,$8F,$35 .6.Y.?.5 -L0478 fcb $F6,$34,$76,$F6,$02,$96,$86,$16 v4vv.... -L0480 fcb $3D,$8E,$05,$79,$30,$8B,$A6,$04 =..y0.&. -L0488 fcb $2A,$08,$A6,$02,$A7,$04,$A6,$05 *.&.'.&. -L0490 fcb $A7,$07,$86,$01,$A7,$08,$F6,$02 '...'.v. -L0498 fcb $96,$17,$00,$13,$86,$07,$33,$0A ......3. -L04A0 fcb $E6,$C6,$27,$06,$17,$00,$33,$5A fF'...3Z -L04A8 fcb $26,$FA,$4A,$2A,$F3,$35,$F6,$34 &zJ*s5v4 -L04B0 fcb $76,$CE,$4A,$02,$86,$15,$3D,$33 vNJ...=3 -L04B8 fcb $CB,$6F,$40,$6F,$C8,$10,$FC,$1D Ko@oH... -L04C0 fcb $F6,$ED,$43,$FC,$1D,$F9,$ED,$46 vmC..ymF -L04C8 fcb $FC,$1D,$6D,$ED,$49,$E6,$01,$4F ..mmIf.O -L04D0 fcb $ED,$41,$AF,$C8,$12,$FF,$71,$B1 mA/H..q1 -L04D8 fcb $35,$F6,$34,$76,$C6,$41,$F7,$1E 5v4vFAw. -L04E0 fcb $13,$CE,$42,$B5,$E6,$40,$2A,$55 .NB5f@*U -L04E8 fcb $34,$10,$30,$8D,$0F,$CA,$A6,$86 4.0..J&. -L04F0 fcb $A7,$C8,$12,$35,$10,$6F,$40,$6F 'H.5.o@o -L04F8 fcb $C8,$10,$FC,$1D,$F6,$ED,$43,$CC H...vmCL -L0500 fcb $1F,$FF,$BD,$76,$A4,$E3,$44,$ED ..=v$cDm -L0508 fcb $44,$FC,$1D,$F9,$ED,$46,$CC,$1F D..ymFL. -L0510 fcb $FD,$BD,$76,$A4,$E3,$47,$ED,$47 .=v$cGmG -L0518 fcb $FC,$1D,$6D,$ED,$49,$E6,$01,$4F ..mmIf.O -L0520 fcb $ED,$41,$FC,$71,$B1,$ED,$C8,$13 mA.q1mH. -L0528 fcb $34,$40,$31,$43,$CE,$4C,$84,$BD 4@1CNL.= -L0530 fcb $74,$D9,$1F,$32,$35,$40,$10,$AF tY.25@./ -L0538 fcb $4E,$A7,$4D,$35,$F6,$33,$C8,$15 N'M5v3H. -L0540 fcb $7A,$1E,$13,$10,$26,$FF,$9D,$35 z...&..5 -L0548 fcb $F6,$34,$76,$4F,$8E,$1D,$DA,$10 v4vO..Z. -L0550 fcb $8E,$00,$01,$10,$3F,$89,$35,$F6 ....?.5v -L0558 fcb $34,$76,$B6,$4C,$80,$81,$03,$27 4v6L...' -L0560 fcb $17,$4C,$B7,$4C,$80,$8E,$4C,$A4 .L7L..L$ -L0568 fcb $6D,$86,$26,$07,$86,$FF,$B7,$4C m.&...7L -L0570 fcb $80,$20,$05,$86,$04,$B7,$4C,$81 . ...7L. -L0578 fcb $35,$F6,$34,$60,$10,$8E,$1E,$0D 5v4`.... -L0580 fcb $CE,$4C,$84,$BD,$74,$D9,$44,$44 NL.=tYDD -L0588 fcb $35,$E0,$34,$76,$CC,$00,$00,$FD 5`4vL... -L0590 fcb $4C,$78,$FD,$4C,$7A,$C6,$FF,$F7 Lx.LzF.w -L0598 fcb $4D,$2B,$F7,$4C,$80,$86,$FF,$B7 M+wL...7 -L05A0 fcb $4D,$28,$7F,$4D,$11,$7F,$4D,$29 M(M.M) -L05A8 fcb $7F,$4C,$82,$7F,$05,$00,$5F,$F7 L..._w -L05B0 fcb $4C,$EE,$F7,$03,$55,$F7,$02,$98 Lnw.Uw.. -L05B8 fcb $17,$FF,$9D,$86,$0A,$B7,$1D,$47 .....7.G -L05C0 fcb $86,$01,$B7,$1D,$46,$86,$3C,$B7 ..7.F.<7 -L05C8 fcb $1D,$76,$C6,$63,$F7,$4D,$12,$F7 .vFcwM.w -L05D0 fcb $4D,$13,$CC,$63,$00,$FD,$4D,$1F M.Lc..M. -L05D8 fcb $FD,$4D,$1B,$FD,$4D,$1D,$B6,$4C .M..M.6L -L05E0 fcb $E0,$B7,$4D,$21,$F6,$4C,$CF,$F7 `7M!vLOw -L05E8 fcb $4D,$00,$F6,$4C,$CE,$F7,$4C,$FF M.vLNwL. -L05F0 fcb $FB,$4C,$CF,$F1,$4C,$AC,$23,$0F .LOqL,#. -L05F8 fcb $F6,$4C,$CD,$F7,$4D,$00,$B6,$4C vLMwM.6L -L0600 fcb $AC,$B0,$4C,$CD,$B7,$4C,$FF,$B6 ,0LM7L.6 -L0608 fcb $4C,$CC,$B7,$4D,$01,$B6,$4C,$CD LL7M.6LM -L0610 fcb $B7,$4D,$02,$7F,$4D,$03,$7F,$4D 7M.M.M -L0618 fcb $04,$CC,$00,$01,$FD,$1E,$1E,$FD .L...... -L0620 fcb $1E,$20,$F7,$1E,$22,$7F,$1E,$1D . w.".. -L0628 fcb $10,$8E,$00,$00,$6F,$A9,$4D,$2D ....o)M- -L0630 fcb $31,$21,$10,$8C,$00,$0E,$25,$F4 1!....%t -L0638 fcb $7F,$4C,$EE,$7D,$4C,$76,$26,$1B Ln}Lv&. -L0640 fcb $7F,$4C,$81,$86,$5F,$B7,$4C,$84 L.._7L. -L0648 fcb $86,$7F,$B7,$4C,$87,$CC,$E6,$78 .7L.Lfx -L0650 fcb $FD,$4C,$85,$CC,$4E,$20,$FD,$4C .L.LN .L -L0658 fcb $88,$35,$F6,$F6,$4C,$B3,$86,$15 .5vvL3.. -L0660 fcb $3D,$8E,$02,$B7,$30,$8B,$E6,$00 =..70.f. -L0668 fcb $86,$04,$3D,$FD,$4C,$FB,$FD,$4C ..=.L..L -L0670 fcb $F3,$FD,$4C,$FD,$FD,$4C,$F5,$E6 s.L..Luf -L0678 fcb $01,$F7,$4C,$84,$EC,$02,$FD,$4C .wL.l..L -L0680 fcb $85,$E6,$04,$F7,$4C,$87,$EC,$05 .f.wL.l. -L0688 fcb $FD,$4C,$88,$35,$F6,$34,$76,$8E .L.5v4v. -L0690 fcb $4A,$56,$86,$FF,$A7,$00,$30,$88 JV..'.0. -L0698 fcb $15,$A7,$00,$B6,$4C,$77,$30,$8D .'.6Lw0. -L06A0 fcb $00,$43,$E6,$86,$F7,$1E,$23,$30 .Cf.w.#0 -L06A8 fcb $8D,$00,$3E,$E6,$86,$F7,$1E,$24 ..>f.w.$ -L06B0 fcb $FC,$4C,$BD,$CE,$00,$03,$BD,$76 .L=N..=v -L06B8 fcb $B9,$FD,$1D,$DA,$F6,$4C,$77,$4F 9..ZvLwO -L06C0 fcb $1F,$02,$FC,$4C,$BD,$10,$8C,$00 ...L=... -L06C8 fcb $03,$27,$18,$F3,$1D,$DA,$10,$8C .'.s.Z.. -L06D0 fcb $00,$02,$27,$0C,$F3,$1D,$DA,$10 ..'.s.Z. -L06D8 fcb $8C,$00,$01,$27,$03,$F3,$1D,$DA ...'.s.Z -L06E0 fcb $FD,$4C,$BD,$35,$F6,$14,$19,$1E .L=5v... -L06E8 fcb $2D,$47,$47,$47,$47,$34,$76,$86 -GGGG4v. -L06F0 fcb $01,$30,$8D,$0E,$1B,$10,$3F,$84 .0....?. -L06F8 fcb $B7,$1D,$D9,$8E,$50,$41,$10,$8E 7.Y.PA.. -L0700 fcb $00,$50,$10,$3F,$89,$34,$52,$8E .P.?.4R. -L0708 fcb $00,$00,$CE,$0C,$9D,$B6,$1D,$D9 ..N..6.Y -L0710 fcb $10,$3F,$88,$35,$52,$8E,$50,$91 .?.5R.P. -L0718 fcb $10,$8E,$11,$35,$B6,$1D,$D9,$10 ...56.Y. -L0720 fcb $3F,$89,$7D,$4C,$75,$26,$3C,$34 ?.}Lu&<4 -L0728 fcb $52,$8E,$00,$00,$CE,$00,$80,$B6 R...N..6 -L0730 fcb $1D,$D9,$10,$3F,$88,$35,$52,$8E .Y.?.5R. -L0738 fcb $61,$C6,$10,$8E,$0C,$1D,$B6,$1D aF....6. -L0740 fcb $D9,$10,$3F,$89,$34,$52,$8E,$00 Y.?.4R.. -L0748 fcb $00,$CE,$2A,$9C,$B6,$1D,$D9,$10 .N*.6.Y. -L0750 fcb $3F,$88,$35,$52,$8E,$6D,$E3,$10 ?.5R.mc. -L0758 fcb $8E,$02,$30,$B6,$1D,$D9,$10,$3F ..06.Y.? -L0760 fcb $89,$20,$57,$34,$52,$8E,$00,$00 . W4R... -L0768 fcb $CE,$00,$50,$B6,$1D,$D9,$10,$3F N.P6.Y.? -L0770 fcb $88,$35,$52,$8E,$50,$61,$10,$8E .5R.Pa.. -L0778 fcb $00,$30,$B6,$1D,$D9,$10,$3F,$89 .06.Y.?. -L0780 fcb $34,$52,$8E,$00,$00,$CE,$1D,$D2 4R...N.R -L0788 fcb $B6,$1D,$D9,$10,$3F,$88,$35,$52 6.Y.?.5R -L0790 fcb $8E,$61,$C6,$10,$8E,$0C,$CA,$B6 .aF...J6 -L0798 fcb $1D,$D9,$10,$3F,$89,$34,$52,$8E .Y.?.4R. -L07A0 fcb $00,$00,$CE,$2C,$CC,$B6,$1D,$D9 ..N,L6.Y -L07A8 fcb $10,$3F,$88,$35,$52,$8E,$6E,$90 .?.5R.n. -L07B0 fcb $10,$8E,$02,$CA,$B6,$1D,$D9,$10 ...J6.Y. -L07B8 fcb $3F,$89,$B6,$1D,$D9,$10,$3F,$8F ?.6.Y.?. -L07C0 fcb $35,$F6,$34,$02,$CC,$00,$00,$BD 5v4.L..= -L07C8 fcb $77,$E5,$BD,$77,$47,$CC,$00,$39 we=wGL.9 -L07D0 fcb $FD,$1D,$A7,$CC,$00,$50,$FD,$1D ..'L.P.. -L07D8 fcb $A5,$BD,$72,$F3,$45,$6E,$74,$65 %=rsEnte -L07E0 fcb $72,$20,$46,$69,$6C,$65,$6E,$61 r Filena -L07E8 fcb $6D,$65,$3A,$20,$00,$CC,$00,$45 me: .L.E -L07F0 fcb $FD,$1D,$A7,$CC,$00,$56,$FD,$1D ..'L.V.. -L07F8 fcb $A5,$BD,$72,$F3,$2D,$3E,$00,$7F %=rs->. -L0800 fcb $42,$65,$17,$00,$02,$35,$82,$34 Be...5.4 -L0808 fcb $72,$8E,$42,$65,$BD,$74,$CC,$30 r.Be=tL0 -L0810 fcb $1F,$17,$00,$6B,$4F,$34,$10,$10 ...kO4.. -L0818 fcb $8E,$00,$01,$10,$3F,$89,$35,$10 ....?.5. -L0820 fcb $E6,$84,$C1,$08,$10,$27,$00,$33 f.A..'.3 -L0828 fcb $C1,$1B,$10,$27,$00,$4D,$C1,$05 A..'.MA. -L0830 fcb $10,$27,$00,$47,$7D,$02,$9C,$10 .'.G}... -L0838 fcb $26,$00,$40,$C1,$0D,$10,$27,$00 &.@A..'. -L0840 fcb $35,$BD,$74,$77,$8C,$42,$75,$25 5=tw.Bu% -L0848 fcb $0D,$10,$BE,$1D,$A5,$31,$38,$10 ..>.%18. -L0850 fcb $BF,$1D,$A5,$16,$FF,$BB,$30,$01 ?.%..;0. -L0858 fcb $16,$FF,$B6,$8C,$42,$65,$10,$27 ..6.Be.' -L0860 fcb $FF,$AF,$30,$1F,$C6,$20,$BD,$74 ./0.F =t -L0868 fcb $77,$10,$BE,$1D,$A5,$31,$30,$10 w.>.%10. -L0870 fcb $BF,$1D,$A5,$16,$FF,$9B,$7F,$02 ?.%.... -L0878 fcb $9C,$35,$F2,$C6,$1B,$20,$F7,$34 .5rF. w4 -L0880 fcb $06,$C6,$5F,$BD,$74,$77,$FC,$1D .F_=tw.. -L0888 fcb $A5,$83,$00,$08,$FD,$1D,$A5,$35 %.....%5 -L0890 fcb $86,$34,$76,$17,$FF,$2C,$C1,$1B .4v..,A. -L0898 fcb $10,$27,$00,$2C,$8E,$42,$65,$10 .'.,.Be. -L08A0 fcb $3F,$87,$8E,$42,$65,$CC,$02,$5B ?..BeL.[ -L08A8 fcb $10,$3F,$83,$25,$12,$B7,$1D,$D9 .?.%.7.Y -L08B0 fcb $8E,$01,$09,$10,$8E,$7E,$04,$10 .....~.. -L08B8 fcb $3F,$8A,$25,$03,$16,$00,$03,$17 ?.%..... -L08C0 fcb $00,$65,$B6,$1D,$D9,$10,$3F,$8F .e6.Y.?. -L08C8 fcb $7C,$02,$97,$35,$F6,$34,$76,$17 |..5v4v. -L08D0 fcb $FE,$F0,$C1,$1B,$10,$27,$00,$4A .pA..'.J -L08D8 fcb $FE,$1D,$8B,$34,$40,$8E,$42,$65 ...4@.Be -L08E0 fcb $86,$01,$10,$3F,$84,$25,$27,$B7 ...?.%'7 -L08E8 fcb $1D,$D9,$C6,$02,$10,$3F,$8D,$1F .YF..?.. -L08F0 fcb $31,$11,$83,$7E,$04,$27,$05,$C6 1..~.'.F -L08F8 fcb $F9,$16,$00,$12,$B6,$1D,$D9,$8E y...6.Y. -L0900 fcb $01,$09,$10,$8E,$7E,$04,$10,$3F ....~..? -L0908 fcb $89,$25,$03,$16,$00,$03,$17,$00 .%...... -L0910 fcb $16,$35,$40,$FF,$1D,$8B,$8E,$1E .5@..... -L0918 fcb $25,$BF,$1D,$89,$B6,$1D,$D9,$10 %?..6.Y. -L0920 fcb $3F,$8F,$7C,$02,$97,$35,$F6,$34 ?.|..5v4 -L0928 fcb $76,$8E,$00,$50,$BF,$1D,$A5,$8E v..P?.%. -L0930 fcb $00,$39,$30,$88,$10,$BF,$1D,$A7 .90..?.' -L0938 fcb $BD,$72,$F3,$45,$52,$52,$4F,$52 =rsERROR -L0940 fcb $20,$23,$00,$34,$04,$4F,$BD,$73 #.4.O=s -L0948 fcb $04,$BD,$72,$F3,$20,$3A,$20,$00 .=rs : . -L0950 fcb $35,$04,$C1,$F9,$26,$16,$BD,$72 5.Ay&.=r -L0958 fcb $F3,$57,$52,$4F,$4E,$47,$20,$46 sWRONG F -L0960 fcb $49,$4C,$45,$20,$54,$59,$50,$45 ILE TYPE -L0968 fcb $00,$16,$00,$54,$C1,$D7,$26,$13 ...TAW&. -L0970 fcb $BD,$72,$F3,$42,$41,$44,$20,$50 =rsBAD P -L0978 fcb $41,$54,$48,$4E,$41,$4D,$45,$00 ATHNAME. -L0980 fcb $16,$00,$3D,$C1,$D8,$26,$15,$BD ..=AX&.= -L0988 fcb $72,$F3,$46,$49,$4C,$45,$20,$4E rsFILE N -L0990 fcb $4F,$54,$20,$46,$4F,$55,$4E,$44 OT FOUND -L0998 fcb $00,$16,$00,$24,$C1,$F0,$2D,$10 ...$Ap-. -L09A0 fcb $BD,$72,$F3,$44,$49,$53,$4B,$20 =rsDISK -L09A8 fcb $45,$52,$52,$4F,$52,$00,$20,$10 ERROR. . -L09B0 fcb $BD,$72,$F3,$53,$59,$53,$54,$45 =rsSYSTE -L09B8 fcb $4D,$20,$45,$52,$52,$4F,$52,$00 M ERROR. -L09C0 fcb $BE,$1D,$A7,$30,$88,$10,$BF,$1D >.'0..?. -L09C8 fcb $A7,$8E,$00,$60,$BF,$1D,$A5,$BD '..`?.%= -L09D0 fcb $72,$F3,$50,$72,$65,$73,$73,$20 rsPress -L09D8 fcb $61,$6E,$79,$20,$6B,$65,$79,$20 any key -L09E0 fcb $74,$6F,$20,$63,$6F,$6E,$74,$69 to conti -L09E8 fcb $6E,$75,$65,$00,$4F,$8E,$1D,$DA nue.O..Z -L09F0 fcb $10,$8E,$00,$01,$10,$3F,$89,$35 .....?.5 -L09F8 fcb $F6,$34,$76,$8E,$1E,$25,$CC,$00 v4v..%L. -L0A00 fcb $00,$ED,$81,$8C,$42,$65,$2D,$F9 .m..Be-y -L0A08 fcb $CC,$00,$08,$FD,$1D,$A5,$CC,$00 L....%L. -L0A10 fcb $02,$FD,$1D,$A7,$35,$F6,$34,$76 ...'5v4v -L0A18 fcb $17,$FF,$DE,$30,$8D,$0A,$C2,$86 ..^0..B. -L0A20 fcb $01,$10,$3F,$84,$B7,$1D,$D9,$CE ..?.7.YN -L0A28 fcb $4C,$B5,$F6,$02,$98,$58,$7D,$4C L5v..X}L -L0A30 fcb $76,$26,$02,$C6,$06,$EE,$C5,$8E v&.F.nE. -L0A38 fcb $00,$00,$B6,$1D,$D9,$10,$3F,$88 ..6.Y.?. -L0A40 fcb $BE,$1D,$8B,$34,$10,$8E,$1E,$25 >..4...% -L0A48 fcb $BF,$1D,$8B,$8E,$42,$65,$10,$8E ?...Be.. -L0A50 fcb $00,$01,$B6,$1D,$D9,$10,$3F,$89 ..6.Y.?. -L0A58 fcb $F6,$42,$65,$C1,$40,$10,$27,$00 vBeA@.'. -L0A60 fcb $2C,$C1,$25,$10,$27,$00,$26,$C1 ,A%.'.&A -L0A68 fcb $0D,$27,$09,$C1,$0A,$27,$0E,$BD .'.A.'.= -L0A70 fcb $74,$77,$20,$D7,$CC,$00,$08,$FD tw WL... -L0A78 fcb $1D,$A5,$16,$FF,$CE,$BE,$1D,$A7 .%..N>.' -L0A80 fcb $30,$08,$8C,$00,$6B,$2C,$ED,$BF 0...k,m? -L0A88 fcb $1D,$A7,$16,$FF,$BE,$B6,$1D,$D9 .'..>6.Y -L0A90 fcb $10,$3F,$8F,$35,$10,$BF,$1D,$8B .?.5.?.. -L0A98 fcb $8D,$05,$17,$00,$98,$35,$F6,$34 .....5v4 -L0AA0 fcb $76,$86,$FF,$B7,$02,$97,$86,$03 v..7.... -L0AA8 fcb $B7,$1D,$88,$FC,$1D,$8B,$34,$06 7.....4. -L0AB0 fcb $CC,$1E,$25,$FD,$1D,$8B,$FC,$1D L.%..... -L0AB8 fcb $AD,$34,$06,$CC,$01,$3F,$FD,$1D -4.L.?.. -L0AC0 fcb $AD,$CC,$00,$00,$FD,$1D,$8F,$FD -L...... -L0AC8 fcb $1D,$91,$FD,$1D,$95,$CC,$01,$3F .....L.? -L0AD0 fcb $FD,$1D,$93,$BD,$7B,$F4,$FD,$1D ...={t.. -L0AD8 fcb $93,$CC,$00,$00,$FD,$1D,$8F,$CC .L.....L -L0AE0 fcb $00,$73,$FD,$1D,$91,$FD,$1D,$95 .s...... -L0AE8 fcb $BD,$7B,$F4,$CC,$00,$00,$FD,$1D ={tL.... -L0AF0 fcb $8F,$FD,$1D,$91,$FD,$1D,$93,$CC .......L -L0AF8 fcb $00,$73,$FD,$1D,$95,$BD,$7B,$F4 .s...={t -L0B00 fcb $FD,$1D,$95,$CC,$01,$3F,$FD,$1D ...L.?.. -L0B08 fcb $8F,$FD,$1D,$93,$CC,$00,$00,$FD ....L... -L0B10 fcb $1D,$91,$BD,$7B,$F4,$35,$16,$FD ..={t5.. -L0B18 fcb $1D,$AD,$BF,$1D,$8B,$8E,$1E,$25 .-?....% -L0B20 fcb $FE,$1D,$8B,$10,$8E,$24,$40,$E6 .....$@f -L0B28 fcb $84,$A6,$C4,$E7,$C0,$A7,$80,$31 .&Dg@'.1 -L0B30 fcb $3F,$26,$F4,$35,$F6,$34,$76,$4F ?&t5v4vO -L0B38 fcb $8E,$42,$65,$10,$8E,$00,$01,$10 .Be..... -L0B40 fcb $3F,$89,$FE,$1D,$8B,$8E,$1E,$25 ?......% -L0B48 fcb $EC,$81,$ED,$C1,$8C,$42,$65,$2D l.mA.Be- -L0B50 fcb $F7,$35,$F6,$34,$76,$86,$FF,$B7 w5v4v..7 -L0B58 fcb $02,$97,$7F,$4D,$3E,$8E,$1E,$25 ..M>..% -L0B60 fcb $CC,$00,$00,$ED,$81,$8C,$42,$65 L..m..Be -L0B68 fcb $2D,$F9,$17,$FF,$32,$CC,$00,$08 -y..2L.. -L0B70 fcb $FD,$1D,$A5,$CC,$00,$02,$FD,$1D ..%L.... -L0B78 fcb $A7,$30,$8D,$09,$64,$86,$01,$10 '0..d... -L0B80 fcb $3F,$84,$B7,$1D,$D9,$CE,$4C,$B5 ?.7.YNL5 -L0B88 fcb $F6,$02,$98,$58,$7D,$4C,$76,$26 v..X}Lv& -L0B90 fcb $02,$C6,$06,$EE,$C5,$8E,$00,$00 .F.nE... -L0B98 fcb $B6,$1D,$D9,$10,$3F,$88,$8E,$42 6.Y.?..B -L0BA0 fcb $65,$10,$8E,$00,$01,$B6,$1D,$D9 e....6.Y -L0BA8 fcb $10,$3F,$89,$F6,$42,$65,$C1,$40 .?.vBeA@ -L0BB0 fcb $10,$27,$00,$3A,$C1,$25,$10,$27 .'.:A%.' -L0BB8 fcb $00,$34,$C1,$0D,$27,$17,$C1,$0A .4A.'.A. -L0BC0 fcb $27,$1C,$7D,$4D,$3E,$26,$09,$17 '.}M>&.. -L0BC8 fcb $00,$2F,$B7,$4D,$3E,$17,$03,$06 ./7M>... -L0BD0 fcb $BD,$74,$77,$20,$C9,$CC,$00,$08 =tw IL.. -L0BD8 fcb $FD,$1D,$A5,$16,$FF,$C0,$BE,$1D ..%..@>. -L0BE0 fcb $A7,$30,$08,$8C,$00,$6B,$2C,$ED '0...k,m -L0BE8 fcb $BF,$1D,$A7,$16,$FF,$B0,$B6,$1D ?.'..06. -L0BF0 fcb $D9,$10,$3F,$8F,$17,$FF,$3E,$35 Y.?...>5 -L0BF8 fcb $F6,$34,$34,$4F,$C6,$01,$10,$3F v44OF..? -L0C00 fcb $8D,$24,$03,$4F,$35,$B4,$4F,$8E .$.O54O. -L0C08 fcb $1D,$DA,$10,$8E,$00,$01,$10,$3F .Z.....? -L0C10 fcb $89,$B6,$1D,$DA,$81,$03,$27,$0B .6.Z..'. -L0C18 fcb $81,$05,$27,$07,$7D,$02,$9C,$26 ..'.}..& -L0C20 fcb $02,$35,$B4,$7F,$02,$9C,$86,$1B .54.... -L0C28 fcb $35,$B4,$34,$76,$10,$8E,$00,$75 544v...u -L0C30 fcb $8E,$42,$B5,$86,$FF,$A7,$00,$30 .B5..'.0 -L0C38 fcb $88,$15,$31,$3F,$10,$26,$FF,$F5 ..1?.&.u -L0C40 fcb $35,$F6,$34,$76,$86,$01,$30,$8D 5v4v..0. -L0C48 fcb $08,$E6,$10,$3F,$84,$8E,$1E,$25 .f.?...% -L0C50 fcb $10,$8E,$16,$66,$10,$3F,$89,$10 ...f.?.. -L0C58 fcb $3F,$8F,$8E,$1E,$25,$10,$8E,$16 ?...%... -L0C60 fcb $66,$FE,$1D,$8B,$17,$01,$05,$CC f......L -L0C68 fcb $01,$09,$BD,$73,$5B,$CC,$02,$36 ..=s[L.6 -L0C70 fcb $BD,$73,$5B,$86,$03,$B7,$1D,$88 =s[..7.. -L0C78 fcb $BE,$1D,$8B,$BF,$1D,$89,$4F,$34 >..?..O4 -L0C80 fcb $02,$8E,$00,$20,$30,$14,$BF,$1D ... 0.?. -L0C88 fcb $A5,$30,$8D,$08,$D2,$E6,$86,$4F %0..Rf.O -L0C90 fcb $C3,$00,$04,$FD,$1D,$A7,$BD,$72 C....'=r -L0C98 fcb $F3,$30,$30,$30,$00,$35,$02,$4C s000.5.L -L0CA0 fcb $81,$04,$26,$DB,$4F,$30,$8D,$08 ..&[O0.. -L0CA8 fcb $B6,$10,$8E,$02,$A7,$34,$02,$C6 6...'4.F -L0CB0 fcb $20,$E7,$28,$E7,$A0,$E6,$80,$C0 g(g f.@ -L0CB8 fcb $14,$E7,$28,$E7,$A0,$35,$02,$4C .g(g 5.L -L0CC0 fcb $81,$04,$26,$E9,$CC,$00,$00,$FD ..&iL... -L0CC8 fcb $4C,$FD,$FD,$4C,$F9,$FD,$4C,$FB L..Ly.L. -L0CD0 fcb $FD,$4C,$F7,$FD,$4C,$F5,$FD,$4C .Lw.Lu.L -L0CD8 fcb $F1,$FD,$4C,$F3,$FD,$4C,$EF,$17 q.Ls.Lo. -L0CE0 fcb $00,$5E,$17,$00,$71,$17,$00,$A6 .^..q..& -L0CE8 fcb $17,$00,$B9,$BD,$78,$43,$BD,$78 ..9=xC=x -L0CF0 fcb $66,$86,$FF,$B7,$4D,$28,$86,$01 f..7M(.. -L0CF8 fcb $30,$8D,$00,$35,$10,$3F,$84,$B7 0..5.?.7 -L0D00 fcb $1D,$D9,$8E,$00,$00,$CE,$00,$72 .Y...N.r -L0D08 fcb $10,$3F,$88,$FC,$1D,$8B,$C3,$2D .?....C- -L0D10 fcb $63,$1F,$01,$C6,$08,$34,$14,$B6 c..F.4.6 -L0D18 fcb $1D,$D9,$10,$8E,$00,$0C,$10,$3F .Y.....? -L0D20 fcb $89,$35,$14,$30,$88,$50,$5A,$26 .5.0.PZ& -L0D28 fcb $EC,$B6,$1D,$D9,$10,$3F,$8F,$35 l6.Y.?.5 -L0D30 fcb $F6,$73,$75,$62,$2F,$64,$69,$65 vsub/die -L0D38 fcb $73,$65,$6C,$2E,$64,$61,$74,$00 sel.dat. -L0D40 fcb $34,$76,$CC,$00,$92,$FD,$1D,$A7 4vL....' -L0D48 fcb $CC,$00,$C8,$FD,$1D,$A5,$F6,$4D L.H..%vM -L0D50 fcb $11,$BD,$78,$2E,$35,$F6,$34,$76 .=x.5v4v -L0D58 fcb $CC,$00,$A2,$FD,$1D,$A7,$CC,$00 L."..'L. -L0D60 fcb $C8,$FD,$1D,$A5,$F6,$4D,$12,$BD H..%vM.= -L0D68 fcb $78,$2E,$35,$F6,$34,$76,$A6,$80 x.5v4v&. -L0D70 fcb $2A,$0D,$84,$7F,$31,$3F,$E6,$80 *..1?f. -L0D78 fcb $E7,$C0,$4A,$26,$FB,$20,$09,$E6 g@J&. .f -L0D80 fcb $80,$E7,$C0,$31,$3F,$4A,$26,$F7 .g@1?J&w -L0D88 fcb $31,$3F,$26,$E2,$35,$F6,$34,$76 1?&b5v4v -L0D90 fcb $CC,$00,$B2,$FD,$1D,$A7,$CC,$00 L.2..'L. -L0D98 fcb $C8,$FD,$1D,$A5,$F6,$4D,$13,$BD H..%vM.= -L0DA0 fcb $78,$2E,$35,$F6,$34,$76,$CC,$00 x.5v4vL. -L0DA8 fcb $92,$FD,$1D,$A7,$CC,$01,$12,$FD ...'L... -L0DB0 fcb $1D,$A5,$4F,$F6,$1E,$1D,$30,$8D .%Ov..0. -L0DB8 fcb $00,$1E,$E6,$85,$BD,$78,$2E,$8E ..f.=x.. -L0DC0 fcb $01,$28,$BF,$1D,$A5,$30,$8D,$00 .(?.%0.. -L0DC8 fcb $0A,$F6,$1E,$1D,$E6,$85,$BD,$74 .v..f.=t -L0DD0 fcb $77,$35,$F6,$53,$53,$53,$4D,$48 w5vSSSMH -L0DD8 fcb $01,$05,$1E,$0A,$04,$34,$36,$CC .....46L -L0DE0 fcb $01,$00,$8E,$42,$65,$34,$10,$10 ...Be4.. -L0DE8 fcb $3F,$8D,$35,$10,$A6,$04,$B7,$1D ?.5.&.7. -L0DF0 fcb $49,$6F,$04,$A6,$07,$B7,$1D,$4A Io.&.7.J -L0DF8 fcb $6F,$07,$CC,$01,$00,$10,$3F,$8E o.L...?. -L0E00 fcb $35,$B6,$7D,$4D,$2E,$27,$1A,$BD 56}M.'.= -L0E08 fcb $72,$C3,$54,$68,$65,$20,$72,$61 rCThe ra -L0E10 fcb $64,$69,$6F,$20,$69,$73,$20,$6F dio is o -L0E18 fcb $75,$74,$2C,$20,$53,$69,$72,$00 ut, Sir. -L0E20 fcb $39,$BD,$72,$C3,$53,$65,$6E,$64 9=rCSend -L0E28 fcb $69,$6E,$67,$20,$53,$2E,$4F,$2E ing S.O. -L0E30 fcb $53,$2E,$2C,$20,$53,$69,$72,$00 S., Sir. -L0E38 fcb $C6,$53,$17,$00,$99,$C6,$4F,$17 FS...FO. -L0E40 fcb $00,$94,$C6,$53,$17,$00,$8F,$C6 ..FS...F -L0E48 fcb $FF,$F7,$4C,$83,$39,$7D,$4D,$2E .wL.9}M. -L0E50 fcb $27,$1A,$BD,$72,$C3,$54,$68,$65 '.=rCThe -L0E58 fcb $20,$72,$61,$64,$69,$6F,$20,$69 radio i -L0E60 fcb $73,$20,$6F,$75,$74,$2C,$20,$53 s out, S -L0E68 fcb $69,$72,$00,$39,$BD,$72,$C3,$52 ir.9=rCR -L0E70 fcb $61,$64,$69,$6F,$69,$6E,$67,$20 adioing -L0E78 fcb $70,$6F,$73,$69,$74,$69,$6F,$6E position -L0E80 fcb $2C,$20,$53,$69,$72,$00,$F6,$4C , Sir.vL -L0E88 fcb $84,$BD,$76,$91,$17,$00,$47,$BD .=v...G= -L0E90 fcb $76,$91,$17,$00,$41,$BD,$76,$91 v...A=v. -L0E98 fcb $17,$00,$3B,$F6,$4C,$87,$BD,$76 ..;vL.=v -L0EA0 fcb $91,$17,$00,$32,$BD,$76,$91,$17 ...2=v.. -L0EA8 fcb $00,$2C,$BD,$76,$91,$17,$00,$26 .,=v...& -L0EB0 fcb $C6,$45,$17,$00,$21,$C6,$50,$17 FE..!FP. -L0EB8 fcb $00,$1C,$C6,$59,$17,$00,$17,$C6 ..FY...F -L0EC0 fcb $58,$17,$00,$12,$C6,$FF,$F7,$4C X...F.wL -L0EC8 fcb $83,$39,$34,$76,$1F,$01,$CC,$01 .94v..L. -L0ED0 fcb $98,$10,$3F,$8E,$35,$F6,$34,$76 ..?.5v4v -L0ED8 fcb $C1,$20,$26,$11,$17,$00,$5E,$17 A &...^. -L0EE0 fcb $00,$5B,$17,$00,$58,$17,$00,$55 .[..X..U -L0EE8 fcb $17,$00,$52,$35,$F6,$C1,$27,$2D ..R5vA'- -L0EF0 fcb $FA,$C1,$61,$2D,$02,$C0,$20,$C1 zAa-.@ A -L0EF8 fcb $7A,$2E,$F0,$C0,$27,$30,$8D,$06 z.p@'0.. -L0F00 fcb $62,$E6,$85,$86,$08,$4A,$58,$24 bf...JX$ -L0F08 fcb $FC,$58,$24,$14,$34,$06,$CC,$3F .X$.4.L? -L0F10 fcb $04,$1F,$01,$10,$8E,$0F,$D7,$17 ......W. -L0F18 fcb $FF,$B0,$8D,$21,$35,$06,$20,$12 .0.!5. . -L0F20 fcb $34,$06,$CC,$3F,$0C,$1F,$01,$10 4.L?.... -L0F28 fcb $8E,$0F,$D7,$17,$FF,$9C,$8D,$0D ..W..... -L0F30 fcb $35,$06,$4A,$26,$D4,$8D,$06,$8D 5.J&T... -L0F38 fcb $04,$8D,$02,$35,$F6,$34,$10,$8E ...5v4.. -L0F40 fcb $27,$10,$30,$1F,$26,$FC,$35,$10 '.0.&.5. -L0F48 fcb $39,$34,$62,$CC,$00,$00,$FD,$1D 94bL.... -L0F50 fcb $B9,$BD,$77,$E5,$FE,$1D,$8B,$34 9=we...4 -L0F58 fcb $40,$CE,$1E,$25,$FF,$1D,$8B,$FF @N.%.... -L0F60 fcb $1D,$89,$10,$8E,$00,$06,$10,$BF .......? -L0F68 fcb $1D,$A7,$10,$8E,$00,$30,$10,$BF .'...0.? -L0F70 fcb $1D,$A5,$E6,$80,$34,$04,$34,$04 .%f.4.4. -L0F78 fcb $BD,$74,$CC,$17,$00,$45,$17,$00 =tL..E.. -L0F80 fcb $42,$BD,$74,$CC,$17,$00,$3C,$6A B=tL..<j -L0F88 fcb $E4,$26,$F6,$35,$46,$FF,$1D,$8B d&v5F... -L0F90 fcb $CE,$1E,$25,$FF,$1D,$89,$BD,$77 N.%...=w -L0F98 fcb $47,$CB,$30,$34,$04,$17,$FC,$59 GK04...Y -L0FA0 fcb $4D,$27,$FA,$1F,$89,$4F,$C1,$0D M'z..OA. -L0FA8 fcb $27,$10,$C1,$1B,$27,$0F,$C1,$31 '.A.'.A1 -L0FB0 fcb $2D,$EB,$E1,$E4,$2E,$E7,$C0,$31 -kad.g@1 -L0FB8 fcb $20,$05,$5F,$20,$02,$C6,$FF,$32 ._ .F.2 -L0FC0 fcb $61,$35,$E2,$10,$8E,$00,$30,$10 a5b...0. -L0FC8 fcb $BF,$1D,$A5,$10,$BE,$1D,$A7,$31 ?.%.>.'1 -L0FD0 fcb $2C,$10,$BF,$1D,$A7,$39,$34,$76 ,.?.'94v -L0FD8 fcb $B6,$4C,$75,$B7,$4D,$3C,$B6,$1E 6Lu7M<6. -L0FE0 fcb $16,$B7,$4D,$3D,$CC,$00,$00,$34 .7M=L..4 -L0FE8 fcb $06,$34,$06,$30,$8D,$03,$4E,$17 .4.0..N. -L0FF0 fcb $FF,$57,$5D,$10,$2B,$02,$59,$C1 .W].+.YA -L0FF8 fcb $00,$10,$27,$00,$54,$E7,$E4,$30 ..'.Tgd0 -L1000 fcb $8D,$03,$85,$17,$FF,$43,$5D,$10 .....C]. -L1008 fcb $2B,$02,$45,$E7,$63,$30,$8D,$03 +.Egc0.. -L1010 fcb $BB,$17,$FF,$35,$5D,$10,$2B,$02 ;..5].+. -L1018 fcb $37,$E7,$61,$A6,$E4,$81,$02,$27 7ga&d..' -L1020 fcb $1A,$C1,$01,$27,$06,$30,$8D,$03 .A.'.0.. -L1028 fcb $CA,$20,$04,$30,$8D,$04,$0D,$17 J .0.... -L1030 fcb $FF,$17,$5D,$10,$2B,$02,$19,$E7 ..].+..g -L1038 fcb $62,$20,$16,$6F,$62,$34,$02,$C1 b .ob4.A -L1040 fcb $01,$27,$07,$86,$FF,$B7,$02,$A3 .'...7.# -L1048 fcb $20,$05,$86,$23,$B7,$02,$A3,$35 ..#7.#5 -L1050 fcb $02,$CC,$00,$00,$BD,$77,$E5,$BD .L..=we= -L1058 fcb $77,$47,$CC,$00,$39,$FD,$1D,$A7 wGL.9..' -L1060 fcb $CC,$00,$50,$FD,$1D,$A5,$BD,$72 L.P..%=r -L1068 fcb $F3,$45,$6E,$74,$65,$72,$20,$43 sEnter C -L1070 fcb $61,$70,$74,$61,$69,$6E,$27,$73 aptain's -L1078 fcb $20,$4E,$61,$6D,$65,$3A,$20,$00 Name: . -L1080 fcb $CC,$00,$45,$FD,$1D,$A7,$CC,$00 L.E..'L. -L1088 fcb $56,$FD,$1D,$A5,$BD,$72,$F3,$2D V..%=rs- -L1090 fcb $3E,$00,$8E,$42,$65,$10,$8E,$03 >..Be... -L1098 fcb $35,$86,$19,$E6,$A0,$27,$05,$E7 5..f '.g -L10A0 fcb $80,$4A,$26,$F7,$6F,$84,$17,$F7 .J&wo..w -L10A8 fcb $5E,$C1,$1B,$10,$27,$01,$A1,$B6 ^A..'.!6 -L10B0 fcb $42,$65,$81,$0D,$26,$06,$30,$8D Be..&.0. -L10B8 fcb $05,$3F,$20,$03,$8E,$42,$65,$86 .? ..Be. -L10C0 fcb $19,$10,$8E,$03,$35,$E6,$80,$C1 ....5f.A -L10C8 fcb $0D,$27,$05,$E7,$A0,$4A,$26,$F5 .'.g J&u -L10D0 fcb $6F,$A4,$35,$06,$B7,$4C,$76,$F7 o$5.7Lvw -L10D8 fcb $4C,$75,$35,$02,$C1,$00,$27,$04 Lu5.A.'. -L10E0 fcb $8B,$2A,$20,$02,$8B,$27,$B7,$1E .* ..'7. -L10E8 fcb $16,$35,$02,$B7,$4C,$77,$86,$03 .5.7Lw.. -L10F0 fcb $B7,$05,$CE,$CC,$00,$00,$FD,$04 7.NL.... -L10F8 fcb $F0,$FD,$04,$F2,$FD,$04,$F4,$FD p..r..t. -L1100 fcb $04,$F5,$FD,$02,$9A,$7F,$04,$F7 .u....w -L1108 fcb $7F,$04,$F8,$7F,$04,$F9,$7F,$04 .x.y. -L1110 fcb $FA,$7F,$04,$FB,$7F,$04,$FC,$7F z.... -L1118 fcb $04,$FD,$7F,$04,$FE,$7F,$04,$FF ...... -L1120 fcb $17,$EF,$D6,$17,$F1,$5B,$17,$F5 .oV.q[.u -L1128 fcb $C4,$17,$EF,$8C,$17,$F2,$CE,$17 D.o..rN. -L1130 fcb $F4,$58,$17,$FB,$0D,$17,$F5,$55 tX....uU -L1138 fcb $B6,$4C,$76,$81,$02,$10,$26,$01 6Lv...&. -L1140 fcb $0A,$CC,$00,$00,$BD,$77,$E5,$FE .L..=we. -L1148 fcb $1D,$8B,$34,$40,$CE,$1E,$25,$FF ..4@N.%. -L1150 fcb $1D,$8B,$10,$8E,$00,$29,$10,$BF .....).? -L1158 fcb $1D,$A7,$10,$8E,$00,$10,$10,$BF .'.....? -L1160 fcb $1D,$A5,$7D,$4C,$75,$26,$46,$BD .%}Lu&F= -L1168 fcb $72,$F3,$49,$74,$20,$69,$73,$20 rsIt is -L1170 fcb $74,$68,$65,$20,$79,$65,$61,$72 the year -L1178 fcb $20,$31,$39,$33,$39,$2C,$20,$61 1939, a -L1180 fcb $6E,$64,$00,$10,$8E,$00,$32,$10 nd....2. -L1188 fcb $BF,$1D,$A7,$10,$8E,$00,$10,$10 ?.'..... -L1190 fcb $BF,$1D,$A5,$BD,$72,$F3,$47,$65 ?.%=rsGe -L1198 fcb $72,$6D,$61,$6E,$79,$20,$68,$61 rmany ha -L11A0 fcb $73,$20,$73,$74,$61,$72,$74,$65 s starte -L11A8 fcb $64,$00,$16,$00,$4D,$BD,$72,$F3 d...M=rs -L11B0 fcb $49,$74,$20,$69,$73,$20,$74,$68 It is th -L11B8 fcb $65,$20,$79,$65,$61,$72,$20,$31 e year 1 -L11C0 fcb $39,$34,$32,$2C,$20,$61,$6E,$64 942, and -L11C8 fcb $20,$74,$68,$65,$00,$10,$8E,$00 the.... -L11D0 fcb $32,$10,$BF,$1D,$A7,$10,$8E,$00 2.?.'... -L11D8 fcb $10,$10,$BF,$1D,$A5,$BD,$72,$F3 ..?.%=rs -L11E0 fcb $55,$6E,$69,$74,$65,$64,$20,$53 United S -L11E8 fcb $74,$61,$74,$65,$73,$20,$68,$61 tates ha -L11F0 fcb $73,$20,$65,$6E,$74,$65,$72,$65 s entere -L11F8 fcb $64,$00,$10,$8E,$00,$3A,$10,$BF d....:.? -L1200 fcb $1D,$A7,$10,$8E,$00,$10,$10,$BF .'.....? -L1208 fcb $1D,$A5,$BD,$72,$F3,$57,$6F,$72 .%=rsWor -L1210 fcb $6C,$64,$20,$57,$61,$72,$20,$49 ld War I -L1218 fcb $49,$2E,$00,$8E,$00,$63,$BF,$1D I....c?. -L1220 fcb $A7,$8E,$00,$48,$BF,$1D,$A5,$BD '..H?.%= -L1228 fcb $72,$F3,$50,$72,$65,$73,$73,$20 rsPress -L1230 fcb $61,$6E,$79,$20,$6B,$65,$79,$00 any key. -L1238 fcb $35,$40,$FF,$1D,$8B,$BD,$77,$47 5@...=wG -L1240 fcb $4F,$8E,$1D,$DA,$10,$8E,$00,$01 O..Z.... -L1248 fcb $10,$3F,$89,$17,$F7,$C8,$35,$F6 .?..wH5v -L1250 fcb $32,$64,$35,$F6,$34,$76,$CC,$00 2d5v4vL. -L1258 fcb $00,$FD,$02,$9A,$7F,$04,$FA,$7F .....z -L1260 fcb $04,$FB,$7F,$04,$FC,$7F,$04,$FD ...... -L1268 fcb $7F,$04,$FE,$7F,$04,$FF,$86,$03 ...... -L1270 fcb $B7,$05,$CE,$BE,$1E,$17,$F6,$1E 7.N>..v. -L1278 fcb $16,$34,$14,$17,$EE,$7B,$17,$F0 .4..n{.p -L1280 fcb $00,$17,$F4,$69,$17,$EE,$31,$17 ..ti.n1. -L1288 fcb $F1,$73,$17,$F2,$FD,$17,$F9,$B2 qs.r..y2 -L1290 fcb $17,$F3,$FA,$17,$F7,$63,$8E,$00 .sz.wc.. -L1298 fcb $29,$BF,$1D,$A7,$8E,$00,$38,$BF )?.'..8? -L12A0 fcb $1D,$A5,$10,$BE,$1D,$8B,$CE,$1E .%.>..N. -L12A8 fcb $25,$FF,$1D,$8B,$BE,$1E,$17,$F6 %...>..v -L12B0 fcb $1E,$16,$E1,$E0,$27,$04,$30,$89 ..a`'.0. -L12B8 fcb $01,$6D,$1F,$10,$A3,$E1,$10,$83 .m..#a.. -L12C0 fcb $00,$01,$2C,$03,$CC,$00,$01,$BD ..,.L..= -L12C8 fcb $72,$F3,$41,$66,$74,$65,$72,$20 rsAfter -L12D0 fcb $61,$20,$6C,$65,$61,$76,$65,$20 a leave -L12D8 fcb $6F,$66,$20,$00,$BD,$73,$04,$BD of .=s.= -L12E0 fcb $72,$F3,$20,$64,$61,$79,$73,$2C rs days, -L12E8 fcb $00,$BE,$1D,$A7,$30,$09,$BF,$1D .>.'0.?. -L12F0 fcb $A7,$CC,$00,$38,$FD,$1D,$A5,$BD 'L.8..%= -L12F8 fcb $72,$F3,$79,$6F,$75,$20,$67,$65 rsyou ge -L1300 fcb $74,$20,$61,$20,$6E,$65,$77,$20 t a new -L1308 fcb $6D,$69,$73,$73,$69,$6F,$6E,$2E mission. -L1310 fcb $00,$8E,$00,$63,$BF,$1D,$A7,$8E ...c?.'. -L1318 fcb $00,$68,$BF,$1D,$A5,$BD,$72,$F3 .h?.%=rs -L1320 fcb $50,$72,$65,$73,$73,$20,$61,$6E Press an -L1328 fcb $79,$20,$6B,$65,$79,$00,$10,$BF y key..? -L1330 fcb $1D,$8B,$17,$F7,$6A,$17,$F7,$FD ...wj.w. -L1338 fcb $17,$F6,$DB,$35,$F6,$03,$20,$53 .v[5v. S -L1340 fcb $45,$4C,$45,$43,$54,$20,$47,$41 ELECT GA -L1348 fcb $4D,$45,$20,$54,$59,$50,$45,$00 ME TYPE. -L1350 fcb $31,$2E,$20,$54,$61,$72,$67,$65 1. Targe -L1358 fcb $74,$20,$70,$72,$61,$63,$74,$69 t practi -L1360 fcb $63,$65,$00,$32,$2E,$20,$53,$69 ce.2. Si -L1368 fcb $6E,$67,$6C,$65,$20,$6D,$69,$73 ngle mis -L1370 fcb $73,$69,$6F,$6E,$00,$33,$2E,$20 sion.3. -L1378 fcb $57,$61,$72,$74,$69,$6D,$65,$20 Wartime -L1380 fcb $63,$6F,$6D,$6D,$61,$6E,$64,$00 command. -L1388 fcb $04,$20,$53,$45,$4C,$45,$43,$54 . SELECT -L1390 fcb $20,$47,$41,$4D,$45,$20,$4C,$45 GAME LE -L1398 fcb $56,$45,$4C,$00,$31,$2E,$20,$4E VEL.1. N -L13A0 fcb $6F,$76,$69,$63,$65,$00,$32,$2E ovice.2. -L13A8 fcb $20,$49,$6E,$74,$65,$72,$6D,$65 Interme -L13B0 fcb $64,$69,$61,$74,$65,$00,$33,$2E diate.3. -L13B8 fcb $20,$41,$64,$76,$61,$6E,$63,$65 Advance -L13C0 fcb $64,$00,$34,$2E,$20,$45,$78,$70 d.4. Exp -L13C8 fcb $65,$72,$74,$00,$02,$20,$20,$43 ert.. C -L13D0 fcb $48,$4F,$4F,$53,$45,$20,$41,$20 HOOSE A -L13D8 fcb $53,$49,$44,$45,$00,$31,$2E,$20 SIDE.1. -L13E0 fcb $47,$65,$72,$6D,$61,$6E,$00,$32 German.2 -L13E8 fcb $2E,$20,$41,$6D,$65,$72,$69,$63 . Americ -L13F0 fcb $61,$6E,$00,$07,$20,$20,$43,$48 an.. CH -L13F8 fcb $4F,$4F,$53,$45,$20,$41,$20,$59 OOSE A Y -L1400 fcb $45,$41,$52,$00,$31,$2E,$20,$31 EAR.1. 1 -L1408 fcb $39,$33,$39,$00,$32,$2E,$20,$31 939.2. 1 -L1410 fcb $39,$34,$30,$00,$33,$2E,$20,$31 940.3. 1 -L1418 fcb $39,$34,$31,$00,$34,$2E,$20,$31 941.4. 1 -L1420 fcb $39,$34,$32,$00,$35,$2E,$20,$31 942.5. 1 -L1428 fcb $39,$34,$33,$00,$36,$2E,$20,$31 943.6. 1 -L1430 fcb $39,$34,$34,$00,$37,$2E,$20,$31 944.7. 1 -L1438 fcb $39,$34,$35,$00,$04,$20,$20,$43 945.. C -L1440 fcb $48,$4F,$4F,$53,$45,$20,$41,$20 HOOSE A -L1448 fcb $59,$45,$41,$52,$00,$31,$2E,$20 YEAR.1. -L1450 fcb $31,$39,$34,$32,$00,$32,$2E,$20 1942.2. -L1458 fcb $31,$39,$34,$33,$00,$33,$2E,$20 1943.3. -L1460 fcb $31,$39,$34,$34,$00,$34,$2E,$20 1944.4. -L1468 fcb $31,$39,$34,$35,$00,$34,$76,$30 1945.4v0 -L1470 fcb $8D,$00,$0B,$17,$FA,$D3,$F7,$02 ....zSw. -L1478 fcb $91,$7C,$02,$97,$35,$F6,$02,$20 .|..5v. -L1480 fcb $20,$54,$52,$41,$4E,$53,$46,$45 TRANSFE -L1488 fcb $52,$20,$41,$20,$54,$4F,$52,$50 R A TORP -L1490 fcb $45,$44,$4F,$00,$31,$2E,$20,$46 EDO.1. F -L1498 fcb $6F,$72,$77,$61,$72,$64,$20,$74 orward t -L14A0 fcb $6F,$20,$41,$66,$74,$00,$32,$2E o Aft.2. -L14A8 fcb $20,$41,$66,$74,$20,$74,$6F,$20 Aft to -L14B0 fcb $46,$6F,$72,$77,$61,$72,$64,$00 Forward. -L14B8 fcb $04,$05,$06,$07,$00,$01,$02,$03 ........ -L14C0 fcb $73,$75,$62,$2F,$63,$6F,$6E,$76 sub/conv -L14C8 fcb $6F,$79,$73,$2E,$64,$61,$74,$0D oys.dat. -L14D0 fcb $73,$75,$62,$2F,$6D,$69,$73,$73 sub/miss -L14D8 fcb $69,$6F,$6E,$73,$2E,$64,$61,$74 ions.dat -L14E0 fcb $0D,$73,$75,$62,$2F,$6D,$69,$73 .sub/mis -L14E8 fcb $73,$69,$6F,$6E,$2E,$74,$78,$74 sion.txt -L14F0 fcb $0D,$73,$75,$62,$2F,$73,$75,$62 .sub/sub -L14F8 fcb $73,$74,$61,$74,$73,$2E,$64,$61 stats.da -L1500 fcb $74,$0D,$73,$75,$62,$2F,$66,$6F t.sub/fo -L1508 fcb $6E,$74,$73,$2E,$64,$61,$74,$0D nts.dat. -L1510 fcb $73,$75,$62,$2F,$73,$68,$69,$70 sub/ship -L1518 fcb $6D,$61,$70,$32,$2E,$64,$61,$74 map2.dat -L1520 fcb $0D,$73,$75,$62,$2F,$69,$6E,$76 .sub/inv -L1528 fcb $65,$72,$74,$2E,$70,$69,$63,$0D ert.pic. -L1530 fcb $73,$75,$62,$2F,$63,$6F,$6E,$74 sub/cont -L1538 fcb $72,$6F,$6C,$31,$2E,$63,$6D,$70 rol1.cmp -L1540 fcb $0D,$73,$75,$62,$2F,$67,$65,$72 .sub/ger -L1548 fcb $6D,$61,$70,$2E,$63,$6D,$70,$0D map.cmp. -L1550 fcb $73,$75,$62,$2F,$75,$73,$61,$6D sub/usam -L1558 fcb $61,$70,$2E,$63,$6D,$70,$0D,$18 ap.cmp.. -L1560 fcb $49,$78,$A8,$61,$52,$52,$73,$73 Ix(aRRss -L1568 fcb $4C,$5E,$6A,$2D,$20,$30,$38,$3C L^j- 08< -L1570 fcb $3E,$3F,$2F,$27,$23,$21,$47,$55 >?/'#!GU -L1578 fcb $73,$73,$73,$73,$73,$06,$17,$15 sssss... -L1580 fcb $0B,$03,$1D,$09,$1F,$07,$18,$0A ........ -L1588 fcb $1B,$04,$05,$08,$19,$12,$0D,$0F ........ -L1590 fcb $02,$0E,$1E,$0C,$16,$14,$13,$01 ........ -L1598 fcb $72,$40,$00,$45,$FD,$E8,$00,$14 r@.E.h.. -L15A0 fcb $00,$7E,$00,$00,$37,$40,$00,$FF .~..7@.. -L15A8 fcb $14,$00,$75,$00,$00,$73,$00,$00 ..u..s.. -L15B0 fcb $FF,$1E,$00,$75,$00,$00,$73,$00 ...u..s. -L15B8 fcb $00,$FF,$24,$00,$77,$17,$B4,$56 ..$.w.4V -L15C0 fcb $2F,$68,$FF,$24,$00,$77,$F5,$CB /h.$.wuK -L15C8 fcb $56,$18,$92,$FF,$28,$00,$5F,$00 V...(._. -L15D0 fcb $00,$55,$00,$00,$FF,$18,$00,$60 .U.....` -L15D8 fcb $00,$00,$55,$00,$00,$FF,$1E,$00 ..U..... -L15E0 fcb $00,$00,$1F,$00,$3B,$00,$5A,$00 ....;.Z. -L15E8 fcb $78,$00,$97,$00,$B5,$00,$D4,$00 x...5.T. -L15F0 fcb $F3,$01,$11,$01,$30,$01,$4E,$01 s...0.N. -L15F8 fcb $6D,$4E,$61,$6D,$65,$6C,$65,$73 mNameles -L1600 fcb $73,$0D,$73,$75,$62,$2F,$73,$69 s.sub/si -L1608 fcb $6E,$74,$62,$6C,$2E,$64,$61,$74 ntbl.dat -L1610 fcb $0D,$9A,$BA,$ED ..:m +* Disassembly by Os9disasm of sub1 + + nam sub1 + ttl Sub1 Sub Battle Simulator subroutine + + ifp1 + use defsfile + endc + +* I/O path definitions +StdIn equ 0 +StdOut equ 1 +StdErr equ 2 + + + +* defines for 5 bit zero offset instructions +Zldb_u equ $E640 +Zldb_x equ $E600 +Zsta_x equ $A700 +Zclr_u equ $6F40 +Zclr_x equ $6F00 + +* misc defines for SUB +SinTblSz equ $0169 +CntrlSz equ $1666 + +SinDat equ $0126 +CntrlDat equ $1E25 + +* class D external label equates + +D0001 equ $0001 +D0002 equ $0002 +D0003 equ $0003 +D0004 equ $0004 +D0005 equ $0005 +D0006 equ $0006 +D0007 equ $0007 +D0009 equ $0009 +D000D equ $000D +D000E equ $000E +D0010 equ $0010 +D0012 equ $0012 +D0013 equ $0013 +D0015 equ $0015 +D0030 equ $0030 + +* class X external label equates + +X0107 equ $0107 +X0291 equ $0291 +X0295 equ $0295 +X0296 equ $0296 +X0297 equ $0297 +X0298 equ $0298 +X029A equ $029A +X029C equ $029C +X02A3 equ $02A3 side FF = german 23 = American +X0355 equ $0355 +X04F0 equ $04F0 +X04F2 equ $04F2 +X04F4 equ $04F4 +X04F5 equ $04F5 +X04F7 equ $04F7 +X04F8 equ $04F8 +X04F9 equ $04F9 +X04FA equ $04FA +X04FB equ $04FB +X04FC equ $04FC +X04FD equ $04FD +X04FE equ $04FE +X04FF equ $04FF +X0500 equ $0500 +X05CE equ $05CE +X1D3F equ $1D3F +X1D41 equ $1D41 +X1D44 equ $1D44 +X1D46 equ $1D46 +X1D47 equ $1D47 +X1D49 equ $1D49 IT.EKO original value (echo) +X1D4A equ $1D4A IT.PAU original value (end of page pause) +X1D6D equ $1D6D +X1D76 equ $1D76 +X1D88 equ $1D88 +X1D89 equ $1D89 +X1D8B equ $1D8B +X1D8F equ $1D8F +X1D91 equ $1D91 +X1D93 equ $1D93 +X1D95 equ $1D95 +X1DA5 equ $1DA5 +X1DA7 equ $1DA7 +X1DAD equ $1DAD +X1DAF equ $1DAF +X1DB9 equ $1DB9 +X1DD9 equ $1DD9 temp storage for path num +X1DDA equ $1DDA +X1DF6 equ $1DF6 +X1DF9 equ $1DF9 +X1E13 equ $1E13 +X1E16 equ $1E16 year value +X1E17 equ $1E17 +X1E1D equ $1E1D +X1E1E equ $1E1E +X1E20 equ $1E20 +X1E22 equ $1E22 +X1E23 equ $1E23 +X1E24 equ $1E24 +X4265 equ $4265 +X4C75 equ $4C75 side 0=German 1=US +X4C76 equ $4C76 game type +X4C77 equ $4C77 game level +X4C78 equ $4C78 +X4C7A equ $4C7A +X4C80 equ $4C80 +X4C81 equ $4C81 +X4C82 equ $4C82 +X4C83 equ $4C83 +X4C84 equ $4C84 +X4C85 equ $4C85 +X4C87 equ $4C87 +X4C88 equ $4C88 +X4C90 equ $4C90 +X4CA0 equ $4CA0 +X4CA1 equ $4CA1 +X4CA4 equ $4CA4 +X4CA6 equ $4CA6 +X4CA8 equ $4CA8 +X4CA9 equ $4CA9 +X4CAA equ $4CAA +X4CAB equ $4CAB +X4CAC equ $4CAC +X4CB1 equ $4CB1 +X4CB2 equ $4CB2 +X4CB3 equ $4CB3 +X4CB4 equ $4CB4 +X4CBD equ $4CBD +X4CCC equ $4CCC +X4CCD equ $4CCD +X4CCE equ $4CCE +X4CCF equ $4CCF +X4CE0 equ $4CE0 +X4CEE equ $4CEE +X4CEF equ $4CEF +X4CF1 equ $4CF1 +X4CF3 equ $4CF3 +X4CF5 equ $4CF5 +X4CF7 equ $4CF7 +X4CF9 equ $4CF9 +X4CFB equ $4CFB +X4CFD equ $4CFD +X4CFF equ $4CFF +X4D00 equ $4D00 +X4D01 equ $4D01 +X4D02 equ $4D02 +X4D03 equ $4D03 +X4D04 equ $4D04 +X4D11 equ $4D11 +X4D12 equ $4D12 +X4D13 equ $4D13 +X4D1B equ $4D1B +X4D1D equ $4D1D +X4D1F equ $4D1F +X4D21 equ $4D21 +X4D22 equ $4D22 +X4D27 equ $4D27 +X4D28 equ $4D28 +X4D29 equ $4D29 +X4D2B equ $4D2B +X4D2E equ $4D2E radio status +X4D3B equ $4D3B +X4D3C equ $4D3C new side value +X4D3D equ $4D3D +X4D3E equ $4D3E +X71B1 equ $71B1 +X72C3 equ $72C3 +X72F3 equ $72F3 seems to proceed character strings +X7304 equ $7304 +X735B equ $735B +X7477 equ $7477 some sort of copy routine ??? +X74CC equ $74CC +X74D9 equ $74D9 +X7691 equ $7691 +X76A4 equ $76A4 +X76B9 equ $76B9 +X7747 equ $7747 +X77E5 equ $77E5 +X782E equ $782E +X7843 equ $7843 +X7866 equ $7866 +X7BF4 equ $7BF4 + + + +tylg set SbRtn+Objct +atrv set ReEnt+rev +rev set $01 +*edition set $01 + + mod eom,name,tylg,atrv,start,size + + + +* OS9 data area definitions +size equ . + +name fcs "sub1" +* fcb edition no edition byte included in orig code + +start leax >JumpTbl,pcr + ldd b,x + ldx X0107 + jmp d,x + +JumpTbl +L001C fcb $00,$23,$0F,$C5,$0A,$05 + fcb $08,$80,$08,$BC,$04,$68 + fcb $0B,$42,$05,$47,$0D,$F1 + fcb $12,$43,$14,$5C,$0E,$3C + fcb $17,$0D,$A6 + + ldd #$0073 + std X1DAF + + ldd #$00F4 + std X1DAD + +* Open Path - Opens a path to the an existing file or device +* as specified by the path list +* entry: +* a -> access mode (D S PE PW PR E W R) +* x -> address of the path list +* +* exit: +* a -> path number +* x -> address of the last btye of the path list + 1 +* +* error: +* CC -> Carry set on error +* b -> error code (if any) + + lda #READ. + leax >SinTbl,pcr + os9 I$Open + pshs a save that path number + +* Read - Reads n bytes from the specified path +* entry: +* a -> path number +* x -> address in which to store the data +* y -> is the number of bytes to read +* +* exit: +* y -> number of bytes read +* +* error: +* CC -> Carry set on error +* b -> error code (if any) + + ldx #SinDat + ldy #SinTblSz + os9 I$Read load it in data + + puls a clean up stack + +* Close Path - Terminates I/O path +* (performs an impledd I$Detach call) +* entry: +* a -> path number +* +* error: +* CC -> Carry set on error +* b -> error code (if any) + + os9 I$Close + + + lda #READ. + leax >Font,pcr + os9 I$Open + pshs a No need for this here + +* Seek - Repositions a file pointer +* entry: +* a -> path number +* x -> MS 16 bits of the desired file position +* u -> LS 16 bits of the desired file position +* +* error: +* CC -> Carry set on error +* b -> error code (if any) + + ldx #0 + ldy #0 No need for this here + ldu #$0103 file position + os9 I$Seek + + ldx #$4D3F save address + ldy #$0308 num of bytes to read + lda ,s get the path ?? should still be set + os9 I$Read + + puls a get that same path number no need + os9 I$Close close the file + inc X4C75 increment side ? + + lbsr GetMisDat + lbsr GetSubStat + lbsr GetShipmap + lbsr GetMap + lbsr GetConvoy + lbsr SetParams + lbsr SetMorePars + + lda #2 + sta X05CE + + ldd #4 + std X1D44 + + ldd #$1234 + std X1D3F + std X1D41 + + lbra GetControl1 + + os9 F$Exit + +GetMap +L00B8 pshs a,b,x,y,u + lda #READ. + tst X4C75 test the side value 0=German 1=US + bne MapUS + + leax >Germap,pcr + ldy #$0A9D number of bytes to read when the file is open + bra LoadMap + +MapUS +L00CB leax >USAmap,pcr + ldy #$094E number of bytes to read when the file is open + +LoadMap +L00D3 pshs y number of bytes to read when the file is open + os9 I$Open open it + ldy ,s once again number of bytes to read when the file is open + pshs a save the path + ldx #CntrlDat Set the addr to store the info + lda ,s get the path ??? + os9 I$Read do the read + puls a pull the path + os9 I$Close close the path + +* decode and put it in memory + puls y get that number of bytes to read when the file is open + leay -$01,y drop it by one + ldx #CntrlDat address where stored (from addr) + ldu #$05CF destination address + lbsr Decode_copy + puls a,b,x,y,u,pc + + +GetMisDat +L00F9 pshs a,b,x,y,u + lbsr Set_75 + clr X4D27 + + lda #READ. + leax >Mis_dat,pcr + os9 I$Open + sta X1DD9 stow path number + + lbsr L019A + + ldb X02A3 load the Side value + lda #$33 + mul + tfr d,u LS 16 bits of file position + ldx #0 MS 16 bits of file position + lda X1DD9 get our path number + os9 I$Seek reset the file pointer + + ldx #$4C8A address to store the data + ldy #$0033 number of bytes to read + lda X1DD9 get the path number (not needed) + os9 I$Read read the data from the file + + lda X1DD9 get the path number again (not needed) + os9 I$Close close the file + + ldb X4CA8 + decb + lslb + leax >ByteTbl4,pcr + ldd b,x + addb X4CA9 + adca #0 + std X1E17 + + ldb X4CAA + stb X1E16 year value + + ldb X4CAB + tst X4C76 test game type value once + bne L015A not target practice + lbsr L021B was target practice + + ldb #$10 on return load b +L015A stb X4D22 always stow b either from X4CAB or a fixed value of $10 + + tst X4C76 test that game type value again + beq Ext_MD if zero we're done + + ldb X4CA0 + lbmi Ext_MD2 if negative were done + lda #$09 otherwise multiply by 9 + mul + leax >ByteTbl3,pcr load pointer to bytetable + leax d,x index into it and use that as copy from addr + ldy #$4C63 set destination address to copy to + bsr Copy_9 copy 9 bytes + + ldb X4CA1 + bmi Ext_MD2 if negative we're done + lda #$09 same as above for 9 more bytes + mul + leax >ByteTbl3,pcr + leax d,x + ldy #$4C6C + bsr Copy_9 + +Ext_MD +L018C puls a,b,x,y,u,pc + + +Copy_9 +L018E lda #$09 for the use only twice I would have inlined this snippet + +Loop_9 +L0190 ldb ,x+ + stb ,y+ + deca + bne Loop_9 + rts + + +Ext_MD2 +L0198 puls a,b,x,y,u,pc + + +L019A pshs a,b,x,y,u + ldb X4C76 check that game type value again + cmpb #$02 is it a 2 War Time Command ? + lbeq inc2 if so head for inc & inc + + tst X4C76 check that game type value again + bne L01B9 not target practice branch + + ldb #$24 set some men loactaions with $ + stb X02A3 the side value + stb X4D3B + + lda #$01 US + sta X4C75 set side value + puls a,b,x,y,u,pc + + +L01B9 ldb X1E16 year value + cmpb X4D3D new year value + bne L01D7 not equal branch to next sub + + ldb X4C75 side value + cmpb X4D3C new side value + bne L01D7 not equal branch to next sub + + ldb X02A3 Side value + incb bump it + cmpb X4D3B compare to mate + beq L01D7 if equal branch to next sub + stb X02A3 if not stow b at side value + puls a,b,x,y,u,pc + + +L01D7 ldb X4C75 side value + stb X4D3C new side value + + ldb X1E16 year value + stb X4D3D new year value + + subb #39 start year german b used as index below + + lda X4C75 side value + cmpa #0 German ? + bne Loadtb + + leax >ByteTblA,pcr German + bra Gotta + +Loadtb leax >ByteTblB,pcr American +Gotta lda b,x + sta X02A3 side value + + incb bump b by one + lda b,x index into x again + sta X4D3B stow that + puls a,b,x,y,u,pc + + +inc2 inc X02A3 side value + inc X4D3B + puls a,b,x,y,u,pc + + +ByteTblA +L020B fcb $00,$02,$09,$0F,$15,$1B,$21,$24 + +ByteTblB +L0213 fcb $00,$00,$00,$24,$2E,$32,$39,$3C + + +L021B pshs a,b,x,y,u + + ldb #$FF set b to $FF + ldx #$4C8A start address to set bytes +Loop25 stb ,x+ set byte and bump pointer + cmpx #$4CA4 have we moved 25 bytes? + blo Loop25 nope loop again + + ldd #0000 I'm sure there is a reason these + std X4CA4 jump all over the place + std X4CA6 but it sure isn't self evident + + clr X4C90 + + ldb #$05 + stb X4CB1 + + ldb #$10 + stb X4CAB + + clr X4CB3 + clr X4CB4 + + ldx #$0579 + ldb #$06 + stb $01,x + + lda #$60 + sta $02,x + sta X1DF6 + + ldd #$0064 + std $03,x + + lda #$7F + sta $05,x + sta X1DF9 + + ldd #$3FFF + std $06,x + + clr $12,x this gets overwritten below + clr $08,x +* $09.x is not manipulated + + leax $0A,x so now x is pointed to $0583 + + ldd #$0108 this is cute a=$01 b=$08 +Set8 sta ,x+ set 8 bytes to 1 + decb dec the counter + bne Set8 + +* so when we're finished here starting $0580 we have +* 0580 $06,$60,$00,$64,$7F,$3F,$FF,$00 +* 0588 ??,$01,$01,$01,$01,$01,$01,$01 +* 0590 $01,$01 + + clr X0296 + + ldd #$0320 + std X1D6D + + lbsr L0479 branch down and set some more based at $0579 + puls a,b,x,y,u,pc + + +GetSubStat +L0281 pshs a,b,x,y,u + lda #$FF + sta X0295 + + lda #READ. + leax >SubStat,pcr + os9 I$Open + + sta X1DD9 stow the path num + + lda X4CB1 First read of sub stats + ldb #$22 + mul + ldx #0 MS 16 bits of file position + tfr d,u LS 16 bits of file position + lda X1DD9 get the path num + os9 I$Seek reset file pointer to the head of the file + + ldx #$4CCC destination address + ldy #$0022 number of bytes to read + lda X1DD9 get that pesky path number (not needed) + os9 I$Read read the data + + lda X4CB2 second read of sub stats + ldb #$0D + mul + addd #$00CC + ldx #0 MS 16 bits of file position + tfr d,u LS 16 bits of file position + lda X1DD9 get path num + os9 I$Seek position the file pointer + + ldx #$4CBD destination address + ldy #$000D number of bytes to read + lda X1DD9 get the path num (not needed) + os9 I$Read read the data + + lda X4C75 test side value + cmpa #0 is it zero? German + beq Geroff if so branch to get next file pos + ldu #$0134 LS 16 bits of file position + bra SetMS1 go get the MS word +Geroff ldu #$01AC LS 16 bits of file position +SetMS1 ldx #$0000 MS 16 bits of file position + lda X1DD9 get path num + os9 I$Seek position the file pointer + + ldx #$0501 destination addr + ldy #$0078 number bytes to read + lda X1DD9 get path num + os9 I$Read read the data + + lda X4C75 test side for next read value + cmpa #0 German ? + beq Geroff2 set up next seek + ldu #$0224 LS word of pos + bra SetMS2 go set MS word +Geroff2 ldu #$02A2 LS word of pos +SetMS2 ldx #$0000 MS word of pos + lda X1DD9 get the path num + os9 I$Seek set the file pointer + + ldx #$02B7 destination address + ldy #$007E number of bytes to read + lda X1DD9 get the path num (not needed) + os9 I$Read fetch the data + + lda X1DD9 get the path num (not needed) + os9 I$Close close the file + + ldx #$4A80 load base addr for offset index addressing + ldu #$02B7 load base addr for offset index addressing + + ldb #$06 + pshs b + +Transtat +L032D fdb Zclr_x clr 0,x + + lda $01,u + sta $03,x + + ldd $02,u + std $04,x + + lda $04,u + sta $06,x + + ldd $05,u + std $07,x + + ldd #0 set up to clr word + std $01,x + std $09,x + + leax $15,x bump pointer by 21 + leau $15,u + dec ,s dec the counter + bne Transtat gone 6 times ? nope loop again + + puls b clean up stack + + lda #$05 + lbsr SetByte + + ldb X1E16 load year value + tst X4C75 test side value 0=German 1=US + lbne tst2A test value not zero skip to compare b $2A + cmpb #$27 is it 39 ? + bne tst28 nope goto next test + lda #2 + lbsr SetByte + lda #3 + lbsr SetByte + lda #4 + lbsr SetByte + lbra ExtSubStat + +tst28 cmpb #$28 is it 40 ? + bne tst29 nope go to next test + lda #2 + lbsr SetByte + + ldd X1E17 + cmpd #$005A + lbgt ExtSubStat + + lda #3 + lbsr SetByte + lbra ExtSubStat + +tst29 cmpb #$29 is it 41 ? + bne tst2a + lbra ExtSubStat + +tst2a cmpb #$2A is it 42 ? + bne tst2b + lbra ExtSubStat + +tst2b cmpb #$2B is it 43 ? + bne tst2c + tst X4C75 test side value + beq ExtSubStat german ? + + lda #4 + lbsr SetByte + lbra ExtSubStat + +tst2c cmpb #$2C is it 44 ? + bne tstlst + tst X4C75 + lbne ExtSubStat + ldd X1E17 + cmpd #$0099 + lbls ExtSubStat + +L03C8 lda #2 + lbsr SetByte + lda #4 + lbsr SetByte + lda #3 + lbsr SetByte + lbra ExtSubStat + +tstlst tst X4C75 + beq L03C8 + lda #5 + ldb #$15 + mul + ldx #$4A80 + leax d,x + fdb Zclr_x clr 0,x + +ExtSubStat +L03EB puls a,b,x,y,u,pc + + +* a is passed by caller +* Calcs an offset from base addr and sets it to FF +* +SetByte +L03ED pshs a,b,x,y,u + ldb #$15 + mul + ldx #$4A80 + leax d,x + lda #$FF + fdb Zsta_x + puls a,b,x,y,u,pc + + +GetConvoy +L03FD pshs a,b,x,y,u + lda X4C76 check the game type byte + bne ReadConvoy not target practice + puls a,b,x,y,u,pc + + +ReadConvoy +L0406 leax >Convoys,pcr + lda #READ. + os9 I$Open + sta X1DD9 save that path num + ldx #$4C90 set up destination addr + ldy #$0579 addr for inner loop RCLop2 + + ldb #4 loop counter + pshs b push on the stack +RCloop ldb ,x+ get the first byte at 4C90 and bump the pointer + lbmi RCLend go to loop end + lda #$16 calc the seek position + mul + tfr d,u LS Word file pos + pshs x,y save destination and bytes to read + ldx #0 MS Word file pos + lda X1DD9 path num + os9 I$Seek reset the file pointer + ldx $02,s get the val off the stack + ldy #$0016 bytes to read + lda X1DD9 path num + os9 I$Read fetch the data + + puls x,y grab the old x and y + ldb #3 set up an inner loop + +RCLop2 pshs b push the counter on the stack + ldb $02,y get the third byte at y + addb #$3B add to it + tst X4C75 test side value + beq RCx1 if zero (german) stow it and get new thing to work on + addb #$15 otherwise add some more to it then +RCx1 stb $02,y stow it back + ldb $05,y get the next one to work with + addb #$27 add to it + tst X4C75 check that side value + beq RCx2 if zero (german) stow that and cycle the loop + addb #$0B otherwise add some more then +RCx2 stb $05,y stow it back + leay $01,y bump pointer +1 + puls b pull the loop counter + decb decrement it + bne RCLop2 loop if we haven't gone 3 times + + leay -$03,y after 3 loops move y back to start of inner loop value +RCLend leay $16,y set y up for the next $16 byte read + dec ,s dec the outer loop counter + bne RCloop not gone four times ? loop again + + puls b otherwise clean up stack + + lda X1DD9 get that good old path number + os9 I$Close and close the file + puls a,b,x,y,u,pc return + + +L0479 pshs a,b,x,y,u our generic save all + + ldb X0296 + lda #$16 + mul calc an offset + ldx #$0579 get the base address + leax d,x set the pointer to bae + offset + lda $04,x + bpl PosVal is it positive ? branch + lda $02,x otherwise shift a couple bytes + sta $04,x first then go on + lda $05,x + sta $07,x + +PosVal lda #$01 + sta $08,x + + ldb X0296 + lbsr L04AF + + lda #$07 outer loop counter + leau $0A,x load u with x+10 + +Outloop ldb a,u load b with u+counter (inner counter) + beq Decout is it zero branch out +In_loop lbsr L04DA not zero + decb dec inner counter + bne In_loop +Decout deca + bpl Outloop + puls a,b,x,y,u,pc + + +* value passed in b from caller +L04AF pshs a,b,x,y,u + ldu #$4A02 set base offset + lda #$15 compute offset + mul + leau d,u set base + offset + fdb Zclr_u clear the byte at u + clr $10,u + + ldd X1DF6 + std $03,u + + ldd X1DF9 + std $06,u + + ldd X1D6D + std $09,u + + ldb 1,x could have pulled x off the stack + clra instead of mucking around with u + std $01,u + + stx $12,u + + stu X71B1 stow $4a02 at 71b1 + puls a,b,x,y,u,pc + + +L04DA pshs a,b,x,y,u + ldb #$41 + stb X1E13 + + ldu #$42B5 set base address +L04E4 fdb Zldb_u ldb ,u + bpl L053D + + pshs x we've pushed it once + leax >ByteTblF,pcr + lda a,x + sta $12,u + puls x + + fdb Zclr_u clr ,u + clr $10,u + + ldd X1DF6 + std $03,u + + ldd #$1FFF + jsr X76A4 + addd $04,u + std $04,u + + ldd X1DF9 + std $06,u + ldd #$1FFD + jsr X76A4 + addd $07,u + std $07,u + + ldd X1D6D + std $09,u + ldb $01,x + clra + std $01,u + + ldd X71B1 + std $13,u + + pshs u + leay $03,u + ldu #$4C84 + jsr X74D9 + tfr u,y + puls u + + sty $0E,u + sta $0D,u + puls a,b,x,y,u,pc + + +L053D leau $15,u + dec X1E13 + lbne L04E4 + + puls a,b,x,y,u,pc + + +* reads a byte from std in not explicitly called +N0549 pshs a,b,x,y,u + clra + ldx #$1DDA + ldy #1 + os9 I$Read + puls a,b,x,y,u,pc + + +SetParms2 +L0558 pshs a,b,x,y,u + lda X4C80 + cmpa #3 + beq ExtSP2 if three were done + inca bump a + sta X4C80 and save it back + ldx #$4CA4 set up index + tst a,x test + bne SetP2 + + lda #$FF + sta X4C80 + bra ExtSP2 + +SetP2 lda #4 + sta X4C81 +ExtSP2 +L0578 puls a,b,x,y,u,pc + + +* Not labeled by the disassembler +N057A pshs y,u + ldy #$1E0D + ldu #$4C84 + jsr X74D9 + lsra + lsra + puls y,u,pc + + +SetParams +L058A pshs a,b,x,y,u + ldd #0 zero (clear) these words + std X4C78 + std X4C7A + + ldb #$FF set these bytes + stb X4D2B + stb X4C80 + + lda #$FF switching from accb to acca makes no sense + sta X4D28 + + clr X4D11 clear these bytes + clr X4D29 + clr X4C82 + clr X0500 + + clrb now we clear an acc + stb X4CEE and store the val at these + stb X0355 + stb X0298 + + lbsr SetParms2 call a sub to set some others + + lda #$0A + sta X1D47 + + lda #1 + sta X1D46 + + lda #$3C + sta X1D76 + + ldb #$63 + stb X4D12 + stb X4D13 + + ldd #$6300 + std X4D1F + std X4D1B + std X4D1D + + lda X4CE0 + sta X4D21 + + ldb X4CCF + stb X4D00 + + ldb X4CCE + stb X4CFF + + addb X4CCF + cmpb X4CAC + + bls Setpar2 + + ldb X4CCD + stb X4D00 + + lda X4CAC + suba X4CCD + sta X4CFF + +Setpar2 lda X4CCC + sta X4D01 + + lda X4CCD + sta X4D02 + + clr X4D03 + clr X4D04 + + ldd #1 + std X1E1E + std X1E20 + + stb X1E22 + + clr X1E1D + + ldy #0 +SPLoop clr $4D2D,y + leay 1,y + cmpy #$000E + bcs SPLoop + + clr X4CEE + + tst X4C76 test game type value + bne Setpar3 not target practice + + clr X4C81 + + lda #$5F + sta X4C84 + + lda #$7F + sta X4C87 + + ldd #$E678 + std X4C85 + + ldd #$4E20 + std X4C88 + + puls a,b,x,y,u,pc + + +Setpar3 +L065B ldb X4CB3 + lda #$15 + mul + ldx #$02B7 + leax d,x calc an index + fdb Zldb_x to calc an index + lda #$04 + mul + std X4CFB stow that value + std X4CF3 + std X4CFD + std X4CF5 + + ldb $01,x get bytes at the pointer + stb X4C84 and save them elsewhere + + ldd $02,x + std X4C85 + + ldb $04,x + stb X4C87 + + ldd $05,x + std X4C88 + + puls a,b,x,y,u,pc + +SetMorePars +L068D pshs a,b,x,y,u + ldx #$4A56 + lda #$FF + fdb Zsta_x + + leax $15,x + fdb Zsta_x + + lda X4C77 game level + leax >ByteTblC,pcr + ldb a,x + stb X1E23 + + leax >Gstring,pcr + ldb a,x + stb X1E24 always a G + + ldd X4CBD + ldu #3 + jsr X76B9 + std X1DDA + + ldb X4C77 game level + clra zero ms byte + tfr d,y transfer game level to y + ldd X4CBD + cmpy #$0003 Expert level ? + beq ExtSMP + + addd X1DDA + cmpy #$0002 Advanced level ? + beq ExtSMP1 + + addd X1DDA + cmpy #$0001 Intermediate level ? + beq ExtSMP1 + + addd X1DDA must be Novice + +ExtSMP1 std X4CBD + +ExtSMP +L06E3 puls a,b,x,y,u,pc + + +ByteTblC +L06E5 fcb $14,$19,$1E,$2D + + +Gstring +L06E9 fcc "GGGG" all bytes $47 + + +GetShipmap +L06ED pshs a,b,x,y,u + lda #READ. + leax >Shipmap,pcr + os9 I$Open + sta X1DD9 stow the path num + + ldx #$5041 destination address + ldy #$0050 number of bytes to read + os9 I$Read fetch the data + + pshs a,x,u why ?? + ldx #0 MS Word of file pos + ldu #$0C9D LS Word of file pos + lda X1DD9 path num + os9 I$Seek reset file pointer + puls a,x,u pull what we just saved and then over write it + + ldx #$5091 destination address + ldy #$1135 bytes to read + lda X1DD9 get the path num + os9 I$Read fetch the data + + tst X4C75 test side value + bne Shpmap2 Not German + + pshs a,x,u duh + ldx #0 MS Word of file pos + ldu #$0080 LS Word of file pos + lda X1DD9 load the same path num + os9 I$Seek reset the file pointer + + puls a,x,u pull em and overwrite em ?? + ldx #$61C6 destination + ldy #$0C1D number of bytes to read + lda X1DD9 path num + os9 I$Read fetch the data + + pshs a,x,u duh + ldx #0 MS Word of file pos + ldu #$2A9C LS Word of file pos + lda X1DD9 get that path num + os9 I$Seek reset the file pointer + + puls a,x,u pull em and over write them duh + ldx #$6DE3 destination addr + ldy #$0230 number of byets to read + lda X1DD9 same path num again + os9 I$Read fetch the data + + bra Shpmap3 + +Shpmap2 pshs a,x,u + ldx #0 MW Word of file pos + ldu #$0050 LS Word of file pos + lda X1DD9 path num + os9 I$Seek reset the file pointer + + puls a,x,u waste of time + ldx #$5061 destination addr + ldy #$0030 number of byets to read + lda X1DD9 path num + os9 I$Read + + pshs a,x,u waste of time + ldx #0 MW Word of file pos + ldu #$1DD2 LS Word of file pos + lda X1DD9 path num + os9 I$Seek reset the file pointer + + puls a,x,u waste of time + ldx #$61C6 destination addr + ldy #$0CCA number of byets to read + lda X1DD9 path num + os9 I$Read + + pshs a,x,u waste of time + ldx #0 MW Word of file pos + ldu #$2CCC LS Word of file pos + lda X1DD9 path num + os9 I$Seek reset the file pointer + + puls a,x,u waste of time + ldx #$6E90 destination addr + ldy #$02CA number of byets to read + lda X1DD9 path num + os9 I$Read + +Shpmap3 lda X1DD9 its the same stinking path num all along ... + os9 I$Close + + puls a,b,x,y,u,pc + + +GetFile pshs a + ldd #0000 + jsr X77E5 + + jsr X7747 + + ldd #$0039 + std X1DA7 + + ldd #$0050 + std X1DA5 + + jsr X72F3 this writes the strings? + fcc "Enter Filename: " + fcb C$NULL + fcb $CC + fcb C$NULL + fcb $45 + + std X1DA7 + + ldd #$0056 + std X1DA5 + + jsr X72F3 this writes the strings? + fcc "->" + fcb C$NULL + + clr X4265 + lbsr GetKBinp + puls a,pc + + +GetKBinp +L0807 pshs a,x,y,u + ldx #$4265 base addr to store data + jsr X74CC + + leax -$01,x +ReadKey lbsr L087F + + clra set path stdin + pshs x address to store data ($4264) + ldy #$01 get one byte + os9 I$Read fetch the byte + puls x no need for this + ldb ,x load b with the keyboard value + + cmpb #C$BSP is it a back space ? (ctrl-h) + lbeq IsBSP + + cmpb #C$EOF is it an ESC (ctrl-break) + lbeq IsEOF + + cmpb #C$QUIT is it ENQ (ctrl-e) + lbeq IsEOF + + tst X029C + lbne IsEOF + + cmpb #C$CR carriage return + lbeq EndKey + + jsr X7477 some sort of copy routine ?? + cmpx #$4275 so we read 16 bytes ? + blo NextKey bump x and read again + + ldy X1DA5 + leay -$08,y + sty X1DA5 + lbra ReadKey + +NextKey leax $01,x bump x by one + lbra ReadKey read the next key press + +IsBSP cmpx #$4265 + lbeq ReadKey + leax -$01,x + + ldb #C$SPAC + jsr X7477 some sort of copy routine ?? + ldy X1DA5 + leay -16,y + sty X1DA5 + lbra ReadKey + +EndKey clr X029C + puls a,x,y,u,pc + + +IsEOF ldb #C$EOF + bra EndKey + +L087F pshs a,b + ldb #'_ $5F + jsr X7477 some sort of copy routine ?? + + ldd X1DA5 + subd #$08 + std X1DA5 + + puls a,b,pc + + +* Not explicitly called not labeled by disasm +N0891 pshs a,b,x,y,u + lbsr GetFile + cmpb #C$EOF + lbeq L08C8 + +* Delete File - Deletes a specified disk file +* +* entry: +* x -> address of the path list +* +* exit: +* x -> address of the last btye of the path list + 1 +* +* error: +* CC -> Carry set on error +* b -> error code (if any) + + ldx #$4265 pointer to file name string + os9 I$Delete delete file if exsits + + +* Create File - Creates and opens a disk file +* +* entry: +* a -> access mode (write (2) or update (3)) +* b -> file attributes +* Bit Definition +* 0 Read +* 1 Write +* 2 Execute +* 3 Public Read +* 4 Public Write +* 5 Public Execute +* 6 Shareable file +* x -> address of the path list +* +* exit: +* a -> path number +* x -> address of the last btye of the path list + 1 +* +* error: +* CC -> Carry set on error +* b -> error code (if any) + + ldx #$4265 pointer to file name string + ldd #(WRITE.*$100)+READ.+WRITE.+PREAD.+PWRIT.+SHARE. $025B + os9 I$Create create the file + bcs CallErr if error occured call error handler + sta X1DD9 store the path number + + +* Write - Writes to a file or device +* +* entry: +* a -> path number +* x -> starting address of the data to write +* y -> number of bytes to write +* exit: +* y -> number of bytes written +* +* error: +* CC -> Carry set on error +* b -> error code (if any) + +* path still set from create call + ldx #$0109 starting address of data + ldy #$7E04 number of bytes to write + os9 I$Write move the data + bcs CallErr if error occured call error handler + lbra NoError + +CallErr lbsr ErrMsg +NoError lda X1DD9 load the path number + os9 I$Close close the file + +L08C8 inc X0297 + puls a,b,x,y,u,pc + + +* Not explicitly called not labeled by disasm +N08CD pshs a,b,x,y,u + lbsr GetFile + cmpb #C$EOF + lbeq L0922 + + ldu X1D8B we overwrite this below + pshs u so we save it now + + ldx #$4265 address of path list + lda #READ. access mode + os9 I$Open open the filr + bcs CallEr2 if error occured call error handler + sta X1DD9 stow the path number + + +* Get status - Returns the status of a file or device +* Wildcard call exit status differs based on cal code +* entry: +* a -> path number +* b -> function code 2 (SS.Size) +* +* exit: +* x -> MS 16 bits of the current file size +* u -> LS 16 bits of the current file size +* +* error: +* CC -> Carry set on error +* b -> error code (if any) +* + + ldb #SS.Size get the curent file size + os9 I$GetStt make the call + tfr u,x move u to x but why ?? + cmpu #$7E04 check the file size + beq Readfile if it's the right size go read it + ldb #E$Btyp otherwise wrong type error + lbra CallEr2 + +ReadFile +L08FC lda X1DD9 load the path num + ldx #$0109 addr to stow data + ldy #$7E04 bytes to read + os9 I$Read make the call + bcs CallEr2 + lbra NoErr +CallEr2 lbsr ErrMsg + +NoErr puls u get our old value + stu X1D8B and return it + + ldx #$1E25 + stx X1D89 + + lda X1DD9 l Looks like this gets overwriten too? +* $0109 + $7E04 = $7F0D + os9 I$Close close the file +L0922 inc X0297 + puls a,b,x,y,u,pc + +* b contains error code from calling routine +ErrMsg pshs a,b,x,y,u + ldx #$0050 + stx X1DA5 + + ldx #$0039 + leax 16,x + stx X1DA7 + + jsr X72F3 this writes the strings? + fcc "ERROR #" + fcb C$NULL + + pshs b + clra + jsr X7304 + + jsr X72F3 this writes the strings? + fcc " : " + fcb C$NULL + + puls b + cmpb #E$Btyp bad type ?? + bne ChkBPth + + jsr X72F3 this writes the strings? + fcc "WRONG FILE TYPE" + fcb C$NULL + fcb C$CLSALL flag to skip # of bytes after next null + fcb C$NULL + fcb $54 + +ChkBPth cmpb #E$BPNam bad path name + bne ChkPNF + jsr X72F3 this writes the strings? + fcc "BAD PATHNAME" + fcb C$NULL + fcb C$CLSALL flag to skip # of bytes after next null + fcb C$NULL + fcb $3D + +ChkPNF cmpb #E$PNNF path not found + bne ChkDrv + jsr X72F3 this writes the strings? + fcc "FILE NOT FOUND" + fcb C$NULL + fcb C$CLSALL flag to skip # of bytes after next null + fcb C$NULL + fcb $24 + +ChkDrv cmpb #E$Unit Illegal drive num + blt SomERR none of the above and less than E$Unit +* E$Unit and greater yields disk error of some kind + jsr X72F3 this writes the strings? + fcc "DISK ERROR" + fcb C$NULL + fcb $20 + fcb $10 this will skip over SomERR msg string + +SomERR jsr X72F3 this writes the strings? + fcc "SYSTEM ERROR" + fcb C$NULL + + ldx X1DA7 + leax 16,x + stx X1DA7 + + ldx #$0060 + stx X1DA5 + + jsr X72F3 this writes the strings? + fcc "Press any key to continue" + fcb C$NULL + +* after a string write byte after second null sends to here + clra set stdin + ldx #$1DDA addr to save byte + ldy #$01 only need one + os9 I$Read get the input + puls a,b,x,y,u,pc we're done here return to caller + + +Zero_txt_area +L09F9 pshs a,b,x,y,u + ldx #$1E25 clears $2440 bytes + ldd #$0000 +ClrLoop std ,x++ + cmpx #$4265 + blt ClrLoop + + ldd #$0008 + std X1DA5 + + ldd #$0002 + std X1DA7 + + puls a,b,x,y,u,pc + +Read_mission +L0A16 pshs a,b,x,y,u + lbsr Zero_txt_area clear mission text area + leax >Mis_txt,pcr get the name of the file to open + lda #READ. in read only mode + os9 I$Open open the file + sta X1DD9 path number + + ldu #$4CB5 base addr + ldb X0298 get value stored + lslb multiply by 2 + tst X4C76 check that game type byte + bne L0A35 not target practice use this byte as offset + ldb #$06 is target practice use a +6 offset +L0A35 ldu b,u LS Word of file seek + ldx #$0000 MS Word of file seek + lda X1DD9 get the path number which should still be in a + os9 I$Seek repostion file pointer + + ldx X1D8B + pshs x + ldx #$1E25 + stx X1D8B + +L0A4B ldx #$4265 addr to stow the data + ldy #$01 number of bytes to read + lda X1DD9 load the path number + os9 I$Read read one byte + ldb X4265 put that byte in b + cmpb #'@ is it an @ $40 + lbeq L0A8D + + cmpb #'% is it a % $25 + lbeq L0A8D + + cmpb #C$CR is it a carriage return ? + beq L0A74 + + cmpb #C$LF is it a line feed + beq L0A7D + + jsr X7477 nope then some sort of copy routine ?? + bra L0A4B loop again + +L0A74 ldd #$0008 + std X1DA5 + lbra L0A4B + +L0A7D ldx X1DA7 + leax $08,x + cmpx #$006B + bge L0A74 + + stx X1DA7 + lbra L0A4B + +L0A8D lda X1DD9 get the path num and + os9 I$Close close the file + + puls x + stx X1D8B + + bsr SetandSwap + + lbsr MVMissn + + puls a,b,x,y,u,pc + + +SetandSwap +L0A9F pshs a,b,x,y,u + lda #$FF + sta X0297 + + lda #$03 + sta X1D88 + + ldd X1D8B + pshs d + + ldd #$1E25 + std X1D8B + + ldd X1DAD + pshs d + + ldd #$013F + std X1DAD + + ldd #$0000 + std X1D8F + std X1D91 + std X1D95 + + ldd #$013F + std X1D93 + jsr X7BF4 + std X1D93 + + ldd #$0000 + std X1D8F + + ldd #$0073 + std X1D91 + std X1D95 + jsr X7BF4 + + ldd #$0000 + std X1D8F + std X1D91 + std X1D93 + + ldd #$0073 + std X1D95 + jsr X7BF4 + std X1D95 + + ldd #$013F + std X1D8F + std X1D93 + + ldd #$0000 + std X1D91 + jsr X7BF4 + + puls d,x + std X1DAD + stx X1D8B + + ldx #$1E25 address 1 + ldu X1D8B address 2 + ldy #$2440 number of bytes to swap +L0B27 ldb ,x get a byte from each + lda ,u + stb ,u+ swap them and bump pointers + sta ,x+ + leay -$01,y decrement the counter + bne L0B27 loop till we are finished + + puls a,b,x,y,u,pc + + +MVMissn pshs a,b,x,y,u + clra stdin path + ldx #$4265 address to save data + ldy #$01 bytes to read + os9 I$Read read byte + + ldu X1D8B get save address + ldx #$1E25 get from address +MVLoop ldd ,x++ load a word from x and bump by a word + std ,u++ stow that word at u and bump by a word + cmpx #$4265 have we gotten to the end ?? + blt MVLoop nope loop again + + puls a,b,x,y,u,pc + + +* Not explicitly called not labeled by disasm +* similar to Read_mission at L0A16 +N0B53 pshs a,b,x,y,u + lda #$FF + sta X0297 + + clr X4D3E + + ldx #$1E25 clear the bytes between $1E25 - $4265 + ldd #$0000 +L0B63 std ,x++ + cmpx #$4265 + blt L0B63 + + lbsr SetandSwap so now we swap the cleared bytes + + ldd #$0008 + std X1DA5 + + ldd #$0002 + std X1DA7 + + leax >Mis_txt,pcr + lda #READ. + os9 I$Open + sta X1DD9 save path num + + ldu #$4CB5 base address + ldb X0298 get stored value + lslb multiply by two + tst X4C76 check that game type byte + bne L0B93 not target practice use this value + ldb #$06 otherwise is target practice use a +6 offset +L0B93 ldu b,u LS word of file position to seek + ldx #$0000 MS word of file positioin to seek + lda X1DD9 get the path num that is still in a + os9 I$Seek reset the file pointer + +L0B9E ldx #$4265 addr to stow data + ldy #$01 get one byte + lda X1DD9 get that path numm that's already there + os9 I$Read read a byte + + ldb X4265 load it in b + cmpb #'@ is it an @ $40 + lbeq ClsMisTx + + cmpb #'% is it a % $25 + lbeq ClsMisTx + + cmpb #C$CR + beq L0BD5 + + cmpb #C$LF + beq L0BDE + + tst X4D3E + bne L0BD0 + + lbsr InpReady + sta X4D3E + + lbsr MCode + +L0BD0 jsr X7477 some sort of copy routine ?? + bra L0B9E loop again + +L0BD5 ldd #$0008 + std X1DA5 + lbra L0B9E loop again + +L0BDE ldx X1DA7 + leax $08,x + cmpx #$006B + bge L0BD5 + stx X1DA7 + lbra L0B9E loop again + +ClsMisTx +L0BEE lda X1DD9 + os9 I$Close + lbsr MVMissn + puls a,b,x,y,u,pc + +InpReady +L0BF9 pshs b,x,y + clra set path stdin + ldb #SS.Ready test if data available + os9 I$GetStt make the call + bcc ReadKey2 if ready go read it + clra not read clear a again + puls b,x,y,pc pull b back over any error code + +ReadKey2 +L0C06 clra set path stdin + ldx #$1DDA set address to hold data + ldy #$01 read one byte + os9 I$Read make the call + lda X1DDA load the data in a + cmpa #C$INTR is it a key board interrupt (ctrl-C) + beq EndKey2 + cmpa #C$QUIT is it a keyboard abort (ctrl-E) + beq EndKey2 + tst X029C + bne EndKey2 + puls b,x,y,pc + + +EndKey2 +L0C23 clr X029C + lda #C$EOF + puls b,x,y,pc + + +Set_75 +L0C2A pshs a,b,x,y,u + ldy #$0075 number of bytes to set + ldx #$42B5 base address + lda #$FF value to set them to +Loop75 fdb Zsta_x sta ,x + leax $15,x bump x by $15 + leay -$01,y decrement the counter + lbne Loop75 are we done ? nope loop again + puls a,b,x,y,u,pc + + +GetControl1 +L0C42 pshs a,b,x,y,u + + lda #READ. + leax >Control1,pcr + os9 I$Open + + ldx #CntrlDat address to store + ldy #CntrlSz bytes to read + os9 I$Read + + os9 I$Close close the file + + ldx #CntrlDat + ldy #CntrlSz + ldu X1D8B + lbsr Decode_copy + + ldd #$0109 + jsr X735B + + ldd #$0236 + jsr X735B + + lda #$03 + sta X1D88 + + ldx X1D8B + stx X1D89 + + clra make a zero +GCloop pshs a push it on the stack for a counter + ldx #$0020 huh ? + leax -$0C,x + stx X1DA5 stow that + + leax >ByteTbl1,pcr + ldb a,x + clra make a zero again (still) + addd #$04 add four to value loaded from ByteTbl1 + std X1DA7 + + jsr X72F3 this writes the strings? + fcc "000" + fcb C$NULL + + puls a pull our counter + inca bump it + cmpa #Tbl1sz made 4 loops ?? + bne GCloop nope go again + + clra clear a + leax >ByteTbl1,pcr + ldy #$02A7 + +GClop2 pshs a + ldb #C$SPAC + stb $08,y save it once + stb ,y+ save it twice + ldb ,x+ get the ByteTbl1 byte and bump pointer + subb #$14 subtract $14 + stb $08,y + stb ,y+ + puls a + inca + cmpa #Tbl1sz + bne GClop2 + + ldd #$0000 + std X4CFD + std X4CF9 + std X4CFB + std X4CF7 + std X4CF5 + std X4CF1 + std X4CF3 + std X4CEF + + lbsr SetandJsr1 + lbsr SetandJsr2 + lbsr SetandJsr3 + lbsr SetandJsr4 + + jsr X7843 + + jsr X7866 + + lda #$FF + sta X4D28 + + lda #READ. + leax >Diesel,pcr + os9 I$Open + + sta X1DD9 stow the path number + ldx #$0000 MS 16 bits of file pos + ldu #$0072 LS 16 bits of file pos + os9 I$Seek move file pointer + + ldd X1D8B start with some value + addd #$2D63 add a big offset to it + tfr d,x move it to x in prep for the read + + ldb #$08 Loop counter +DRloop pshs b,x push em + + lda X1DD9 get the path num + ldy #$000C read 12 bytes + os9 I$Read copy the bytes + + puls b,x get the counter and orig destination addr + leax $50,x bump it by 80 + decb dec the counter + bne DRloop go again if not zero + + lda X1DD9 get the path num + os9 I$Close close the file + + puls a,b,x,y,u,pc + + +Diesel +L0D31 fcc "sub/diesel.dat" + fcb C$NULL + +SetandJsr1 +L0D40 pshs a,b,x,y,u + ldd #$0092 + std X1DA7 + + ldd #$00C8 + std X1DA5 + + ldb X4D11 + jsr X782E + + puls a,b,x,y,u,pc + +SetandJsr2 +L0D56 pshs a,b,x,y,u + ldd #$00A2 + std X1DA7 + + ldd #$00C8 + std X1DA5 + + ldb X4D12 + jsr X782E + puls a,b,x,y,u,pc + + +* Decodes ??? and copies data +* x -> from address +* u -> to address +Decode_copy +L0D6C pshs a,b,x,y,u + +Decotr lda ,x+ + bpl Declp2 + anda #$7F + leay -1,y + ldb ,x+ + +Declp1 stb ,u+ + deca + bne Declp1 + + bra Dectr1 + +Declp2 ldb ,x+ + stb ,u+ + leay -1,y + deca + bne Declp2 +Dectr1 leay -1,y + bne Decotr + + puls a,b,x,y,u,pc + +SetandJsr3 +L0D8E pshs a,b,x,y,u + ldd #$00B2 + std X1DA7 + + ldd #$00C8 + std X1DA5 + + ldb X4D13 + jsr X782E + puls a,b,x,y,u,pc + + +SetandJsr4 +L0DA4 pshs a,b,x,y,u + ldd #$0092 + std X1DA7 + + ldd #$0112 + std X1DA5 + + clra + + ldb X1E1D + leax >ByteTblE,pcr + ldb b,x + jsr X782E + + ldx #$0128 + stx X1DA5 + + leax >ByteTblD,pcr + ldb X1E1D + ldb b,x + jsr X7477 some sort of copy routine ?? + + puls a,b,x,y,u,pc + + +ByteTblD +L0DD3 fcb $53,$53,$53,$4D,$48 SSSMH + + +ByteTblE +L0DD8 fcb $01,$05,$1E,$0A,$04,$34,$36 + + +* NO label assigned by disassembler not called explicitly +* possibly through jump table calc? + +* Get Status - Returns the status of a file or device +* entry: +* a -> path number +* b -> SS.Opt (function code 00) +* Reads the option section of the path descriptor, +* copies it to the 32 byte area pointed to by x +* x -> address to receive data packet +* +* error: +* CC -> Carry set on error +* b -> error code (if any) + + +N0DDF ldd #(StdOut*$100)+SS.Opt + ldx #$4265 + pshs x unneeded + os9 I$GetStt + puls x unneeded + lda $04,x IT.EKO + sta X1D49 save orig + clr $04,x set it to NO echo + lda $07,x IT.PAU + sta X1D4A save orig value + clr $07,x set it to NO pause + + ldd #(StdOut*$100)+SS.Opt + + os9 I$SetStt reset them + puls a,b,x,y,pc + + +* NO label assigned by disassembler not called explicitly +* possibly through jump table calc? +N0E02 tst X4D2E + beq SendSOS + jsr X72C3 + fcc "The radio is out, Sir" + fcb C$NULL + rts + +SendSOS +L0E21 jsr X72C3 + fcc "Sending S.O.S., Sir" + fcb C$NULL + + ldb #'S + lbsr MCode + + ldb #'O + lbsr MCode + + ldb #'S + lbsr MCode + + ldb #$FF + stb X4C83 + rts + +* NO label assigned by disassembler not called explicitly +* possibly through jump table calc? +N0E4D tst X4D2E + beq SendPOS + jsr X72C3 + fcc "The radio is out, Sir" + fcb C$NULL + rts + +SendPOS +L0E6C jsr X72C3 + fcc "Radioing position, Sir" + fcb C$NULL + + ldb X4C84 + jsr X7691 + lbsr MCode + + jsr X7691 + lbsr MCode + + jsr X7691 + lbsr MCode + + ldb X4C87 + jsr X7691 + lbsr MCode + + jsr X7691 + lbsr MCode + + jsr X7691 + lbsr MCode + + + ldb #'E cute litte Easter Egg :-) + lbsr MCode + + ldb #'P + lbsr MCode + + ldb #'Y + lbsr MCode + + ldb #'X + lbsr MCode + + ldb #$FF + stb X4C83 + rts + + +* Set Status - Sets the status of a file or device +* entry: +* a -> path number +* b -> SS.Tone (function code 98) Sound through termional output device +* x -> duration and amplitude of the tone +* LSB duration in ticks (60 sec) in the range of 0-255 +* MSB amplitude of the tone in the range of 0-63 +* y -> relative frequency counter (0 = low, 4095 = high) +* exit: +* Same as entry +* error: +* There are no error conditions set +* +* Therefore duration and amplitude passed in accd +* freq is passed in y + +SoundGen +L0ECA pshs a,b,x,y,u + tfr d,x + ldd #(StdOut*$100)+SS.Tone + os9 I$SetStt + puls a,b,x,y,u,pc + +* Looks like a morse code generator based on character input +MCode +L0ED6 pshs a,b,x,y,u + cmpb #C$SPAC + bne L0EED not a space process more + lbsr TimeDly1 otherwise appropriate dead time + lbsr TimeDly1 + lbsr TimeDly1 + lbsr TimeDly1 + lbsr TimeDly1 +ExtMCode + puls a,b,x,y,u,pc + + + +L0EED cmpb #'' is it a tick $27 + blt ExtMcode + cmpb #'a + blt L0EF7 whats wrong with this logic? + subb #$20 make upper case +L0EF7 cmpb #'z this should have been Uppercase Z +* can't be less than a but greater than z + bgt ExtMCode + subb #$27 now we subtract the position of the ' +* to be zero based in the table + leax >ByteTbl2,pcr + ldb b,x + lda #$08 + +L0F05 deca + lslb + bcc L0F05 + +Sndloop lslb + bcc L0F20 + pshs a,b + ldd #$3F04 setup sound amplitude/duration + tfr d,x move it to x where it should have been + ldy #$0FD7 load the freq value + lbsr SoundGen make the noise + bsr TimeDly1 + puls a,b + bra Sndcntr + +L0F20 pshs a,b + ldd #$3F0C setup sound amplitude/duration + tfr d,x move that to x where it should have been in the first place + ldy #$0FD7 load with freq value + lbsr SoundGen make the noise + bsr TimeDly1 + puls a,b + +Sndcntr deca + bne Sndloop + + bsr TimeDly1 + bsr TimeDly1 + bsr TimeDly1 + puls a,b,x,y,u,pc + + +TimeDly1 +L0F3D pshs x + ldx #$2710 +TD1loop leax -1,x + bne TD1Loop + puls x + rts + +* caller passes a pointer to string data in x +MenuSelect +L0F49 pshs a,y,u + ldd #$0000 + std X1DB9 + + jsr X77E5 + + ldu X1D8B + pshs u + + ldu #$1E25 + stu X1D8B + stu X1D89 + + ldy #$0006 + sty X1DA7 + + ldy #$0030 + sty X1DA5 + + ldb ,x+ + pshs b + pshs b + jsr X74CC + + lbsr L0FC3 + lbsr L0FC3 + +L0F81 jsr X74CC + lbsr L0FC3 + dec ,s + bne L0F81 + + puls a,b,u + stu X1D8B + + ldu #$1E25 + stu X1D89 + + jsr X7747 + + addb #$30 + pshs b + +L0F9D lbsr InpReady + tsta not ready a = 0 + beq L0F9D loop till we get an input + + tfr a,b move the returned value to b + clra + cmpb #C$CR + beq L0FBA + + cmpb #C$EOF + beq L0FBD + + cmpb #'1 Looking for input 1 - 7 max depending on menu + blt L0F9D less than 1 loop again + + cmpb ,s + bgt L0F9D + + subb #'1 subtract "one" ($31) from it so we are now zero based + bra L0FBF + +L0FBA clrb + bra L0FBF + +L0FBD ldb #$FF +L0FBF leas $01,s + puls a,y,u,pc + + +L0FC3 ldy #$0030 + sty X1DA5 + + ldy X1DA7 + leay $0C,y + sty X1DA7 + rts + + +GameSetup +N0FD6 pshs a,b,x,y,u + lda X4C75 current side + sta X4D3C new side value + + lda X1E16 current year value + sta X4D3D new year value + + ldd #$0000 make room for 4 items + pshs d + pshs d + + leax >GameType,pcr + lbsr MenuSelect + tstb + lbmi Ex_GS minus value returned were outa here + cmpb #$00 1 was selected (target practice) + lbeq CaptName go prompt for capt name + stb ,s push value on the stack + + leax >GameLev,pcr + lbsr MenuSelect + tstb + lbmi Ex_GS minus value returned were outa here + stb $03,s push that value on the stack + + leax >SideChoose,pcr + lbsr MenuSelect + tstb + lbmi Ex_GS minus value returned were outa here + stb $01,s push that on the stack + + lda ,s get the game type from stack + cmpa #$02 3 selected War time command ? + beq WTCmnd + + cmpb #$01 check side American ? + beq USAin + leax >YearChoose,pcr + bra YrSel +USAin leax >YearChoose2,pcr +YrSel lbsr MenuSelect + tstb + lbmi Ex_GS minus value returned were outa here + stb $02,s push on stack + bra CaptName + +WTCmnd +L103B clr $02,s clear the year value + pshs a push game type + cmpb #$01 check side American ? + beq Ameri + lda #$FF German + sta X02A3 side vlaue + bra L104F +Ameri lda #$23 American + sta X02A3 side value +L104F puls a + +CaptName +L1051 ldd #$0000 + jsr X77E5 + jsr X7747 + + ldd #$0039 + std X1DA7 + + ldd #$0050 + std X1DA5 + + jsr X72F3 this writes the strings? + fcc "Enter Captain's Name: " + fcb C$NULL + fcb $CC + fcb C$NULL + fcb $45 + + std X1DA7 + + ldd #$0056 + std X1DA5 + + jsr X72F3 this writes the strings? + fcc "->" + fcb C$NULL + +* copies in the current captains name + ldx #$4265 destination address + ldy #$0335 source address + lda #$19 bytes to read +L109B ldb ,y+ get the byte + beq L10A4 if we find a zero exit loop + stb ,x+ not zero move the data + deca decrement the loop counter + bne L109B loop till done + +L10A4 clr ,x clear the byte at x + lbsr GetKBinp get keyboard input + cmpb #C$EOF + lbeq Ex_GS + + lda X4265 base address of keyboard input + cmpa #C$CR a carriage return ? + bne HaveNam anything else must be a name + leax >Nameless,pcr was a CR no name chosen + bra CopyNam +HaveNam ldx #$4265 set base address for name string +CopyNam lda #$19 max bytes to copy + ldy #$0335 captains name storage +Cpy2Nam ldb ,x+ get byte + cmpb #C$CR is it a carriage return? + beq NMDone if so were done + stb ,y+ otherwise move the byte + deca dec the counter + bne Cpy2Nam + + +NMDone clr ,y + + puls a,b + sta X4C76 game type + stb X4C75 side + puls a year + cmpb #$00 test side German ? + beq GRyear + +USyear adda #42 US first year + bra SavYear + +GRyear adda #39 German first year +SavYear sta X1E16 save the year value + + puls a + sta X4C77 game level + + lda #$03 + sta X05CE + + ldd #$0000 + std X04F0 + std X04F2 + std X04F4 + std X04F5 + std X029A + + clr X04F7 + clr X04F8 + clr X04F9 + clr X04FA + clr X04FB + clr X04FC + clr X04FD + clr X04FE + clr X04FF + + lbsr GetMisDat + lbsr GetSubStat + lbsr GetShipmap + lbsr GetMap + lbsr GetConvoy + lbsr SetParams + lbsr GetControl1 + lbsr SetMorePars + + lda X4C76 test the game type value + cmpa #$02 is it war time command ? + lbne GetMission no then get your mission + + ldd #$0000 + jsr X77E5 + + ldu X1D8B + pshs u + ldu #$1E25 + stu X1D8B + + ldy #$0029 + sty X1DA7 + + ldy #$0010 + sty X1DA5 + + tst X4C75 test side value 0 = German 1 = US + bne ImUSA + + jsr X72F3 this writes the strings? + fcc "It is the year 1939, and" + fcb C$NULL + + ldy #$0032 + sty X1DA7 + + ldy #$0010 + sty X1DA5 + + jsr X72F3 this writes the strings? + fcc "Germany has started" + fcb C$NULL + fcb C$CLSALL flag to skip # of bytes after next null + fcb C$NULL + fcb $4D bytes to skip (US opening message) + +ImUSA jsr X72F3 this writes the strings? + fcc "It is the year 1942, and the" + fcb C$NULL + + ldy #$0032 + sty X1DA7 + + ldy #$0010 + sty X1DA5 + + jsr X72F3 this writes the strings? + fcc "United States has entered" + fcb C$NULL +* ends up here at the null after germay started string + + ldy #$003A + sty X1DA7 + + ldy #$0010 + sty X1DA5 + + jsr X72F3 this writes the strings? + fcc "World War II." + fcb C$NULL + + ldx #$0063 + stx X1DA7 + + ldx #$0048 + stx X1DA5 + + jsr X72F3 this writes the strings? + fcc "Press any key" + fcb C$NULL + + puls u + stu X1D8B + jsr X7747 + + + clra set path to StdIn + ldx #$1DDA place to store input + ldy #1 get one byte + os9 I$Read go fetch it + +GetMission +L124B lbsr Read_Mission + puls a,b,x,y,u,pc + +Ex_GS +L1250 leas $04,s clean up the stack + puls a,b,x,y,u,pc + + +* not explicitly called and not labeled by disasm +N1254 pshs a,b,x,y,u + ldd #$0000 + std X029A + + clr X04FA + clr X04FB + clr X04FC + clr X04FD + clr X04FE + clr X04FF + + lda #$03 + sta X05CE + + ldx X1E17 + ldb X1E16 year value + pshs b,x + + lbsr GetMisDat + lbsr GetSubStat + lbsr GetShipmap + lbsr GetMap + lbsr GetConvoy + lbsr SetParams + lbsr GetControl1 + lbsr SetMorePars + lbsr Zero_txt_area + + ldx #$0029 + stx X1DA7 + + ldx #$0038 + stx X1DA5 + + ldy X1D8B + + ldu #$1E25 + stu X1D8B + + ldx X1E17 + ldb X1E16 year value + cmpb ,s+ + beq L12BA + leax 365,x +L12BA tfr x,d + subd ,s++ + cmpd #1 + bge L12C7 + ldd #1 + +L12C7 jsr X72F3 this writes the strings? + fcc "After a leave of " + fcb C$NULL + + jsr X7304 writes the days ?? + + jsr X72F3 this writes the strings? + fcc " days," + fcb C$NULL + + ldx X1DA7 + leax 9,x + stx X1DA7 + + ldd #$0038 + std X1DA5 + + jsr X72F3 this writes the strings? + fcc "you get a new mission." + fcb C$NULL + + ldx #$0063 + stx X1DA7 + + ldx #$0068 + stx X1DA5 + + jsr X72F3 this writes the strings? + fcc "Press any key" + fcb C$NULL + + sty X1D8B + + lbsr SetandSwap + lbsr MVMissn + lbsr Read_Mission + puls a,b,x,y,u,pc + + +GameType +L133D fcb $03 seems to flag number of choices + fcc " SELECT GAME TYPE" + fcb C$NULL + fcc "1. Target practice" + fcb C$NULL + fcc "2. Single mission" + fcb C$NULL + fcc "3. Wartime command" + fcb C$NULL + +GameLev +L1388 fcb $04 seems to flag number of choices + fcc " SELECT GAME LEVEL" + fcb C$NULL + fcc "1. Novice" + fcb C$NULL + fcc "2. Intermediate" + fcb C$NULL + fcc "3. Advanced" + fcb C$NULL + fcc "4. Expert" + fcb C$NULL + + +SideChoose +L13CC fcb $02 seems to flag number of choices + fcc " CHOOSE A SIDE" + fcb C$NULL + fcc "1. German" + fcb C$NULL + fcc "2. American" + fcb C$NULL + + +YearChoose +L13F3 fcb $07 seems to flag number of choices + fcc " CHOOSE A YEAR" + fcb C$NULL + fcc "1. 1939" + fcb C$NULL + fcc "2. 1940" + fcb C$NULL + fcc "3. 1941" + fcb C$NULL + fcc "4. 1942" + fcb C$NULL + fcc "5. 1943" + fcb C$NULL + fcc "6. 1944" + fcb C$NULL + fcc "7. 1945" + fcb C$NULL + + +YearChoose2 +L143C fcb $04 seems to flag number of choices + fcc " CHOOSE A YEAR" + fcb C$NULL + fcc "1. 1942" + fcb C$NULL + fcc "2. 1943" + fcb C$NULL + fcc "3. 1944" + fcb C$NULL + fcc "4. 1945" + fcb C$NULL + + +* not explicitly called and not labeled by the disasm +N146D pshs a,b,x,y,u + leax >TorpTrans,pcr + lbsr MenuSelect + stb X0291 + inc X0297 + puls a,b,x,y,u,pc + + +TorpTrans +L147E fcb $02 seems to flag number of choices + fcc " TRANSFER A TORPEDO" + fcb C$NULL + fcc "1. Forward to Aft" + fcb C$NULL + fcc "2. Aft to Forward" + fcb C$NULL + + +ByteTblF +L14B8 fcb $04,$05,$06,$07,$00,$01 + fcb $02,$03 + + +Convoys +L14C0 fcc "sub/convoys.dat" + fcb C$CR + + +Mis_dat +L14D0 fcc "sub/missions.dat" + fcb C$CR + + +Mis_txt +L14E1 fcc "sub/mission.txt" + fcb C$CR + + +SubStat +L14F1 fcc "sub/substats.dat" + fcb C$CR + + +Font +L1502 fcc "sub/fonts.dat" + fcb C$CR + + +Shipmap +L1510 fcc "sub/shipmap2.dat" + fcb C$CR + + +Invert + fcc "sub/invert.pic" had no disasm generated label + fcb C$CR + + +Control1 +L1530 fcc "sub/control1.cmp" + fcb C$CR + + +Germap +L1541 fcc "sub/germap.cmp" + fcb C$CR + + +USAmap +L1550 fcc "sub/usamap.cmp" + fcb C$CR + + +ByteTbl1 +L155F fcb $18,$49,$78,$A8 +Tbl1sz equ *-ByteTbl1 + +ByteTbl2 +L1563 fcb $61,$52,$52,$73,$73,$4C + fcb $5E,$6A,$2D,$20,$30,$38 + fcb $3C,$3E,$3F,$2F,$27,$23 + fcb $21,$47,$55,$73,$73,$73 + fcb $73,$73,$06,$17,$15,$0B + fcb $03,$1D,$09,$1F,$07,$18 + fcb $0A,$1B,$04,$05,$08,$19 + fcb $12,$0D,$0F,$02,$0E,$1E + fcb $0C,$16,$14,$13 + + +ByteTbl3 +L1597 fcb $01,$72,$40,$00,$45,$FD + fcb $E8,$00,$14,$00,$7E,$00 + fcb $00,$37,$40,$00,$FF,$14 + fcb $00,$75,$00,$00,$73,$00 + fcb $00,$FF,$1E,$00,$75,$00 + fcb $00,$73,$00,$00,$FF,$24 + fcb $00,$77,$17,$B4,$56,$2F + fcb $68,$FF,$24,$00,$77,$F5 + fcb $CB,$56,$18,$92,$FF,$28 + fcb $00,$5F,$00,$00,$55,$00 + fcb $00,$FF,$18,$00,$60,$00 + fcb $00,$55,$00,$00,$FF,$1E + + +ByteTbl4 +L15DF fcb $00,$00,$00,$1F,$00,$3B + fcb $00,$5A,$00,$78,$00,$97 + fcb $00,$B5,$00,$D4,$00,$F3 + fcb $01,$11,$01,$30,$01,$4E + fcb $01,$6D + + +Nameless +L15F9 fcc "Nameless" + fcb C$CR + +SinTbl +L1602 fcc "sub/sintbl.dat" + fcb C$CR + + emod +eom +L1614 equ * + + end