1067
|
1 ********************************************************************
|
|
2 * PRESUB - Sub Battle Simulator (autoex module)
|
|
3 *
|
|
4 * $Id$
|
|
5 *
|
|
6 * Ed. Comments Who YY/MM/DD
|
|
7 * ------------------------------------------------------------------
|
|
8 * 0 Disassembly of original distribution ??? 03/01/12
|
|
9 *
|
|
10
|
|
11 nam sub
|
|
12 ttl startup program
|
|
13
|
|
14 * Disassembled 03/01/12 10:22:39 by Disasm v1.5 (C) 1988 by RML
|
|
15
|
|
16 ifp1
|
|
17 use defsfile
|
|
18 endc
|
|
19
|
|
20 tylg set Prgrm+Objct
|
|
21 atrv set ReEnt+rev
|
|
22 rev set $01
|
|
23 edition set 1
|
|
24
|
|
25 mod eom,name,tylg,atrv,start,size
|
|
26
|
|
27 u0000 rmb 2
|
|
28 u0002 rmb 8
|
|
29 u000A rmb 3
|
|
30 u000D rmb 19
|
|
31 u0020 rmb 83
|
|
32 u0073 rmb 311
|
|
33 size equ .
|
|
34
|
|
35 name fcs /sub/
|
|
36 * fcb edition
|
|
37
|
|
38 start lds #$0080
|
|
39 leax >CurOff,pcr
|
|
40 lbsr WriteTxt turn cursor off
|
|
41 ShowMenu leax >Menu,pcr
|
|
42 lbsr WriteTxt show menu
|
|
43 lbsr Read1Chr read char
|
|
44 cmpa #'1 is it 1?
|
|
45 beq DoCMP branch if so
|
|
46 cmpa #'2 is it 2?
|
|
47 beq DoMONO branch if so
|
|
48 cmpa #'3 is it 3?
|
|
49 beq DoRGB branch if so
|
|
50 leax >Bell,pcr else ring bell
|
|
51 lbsr WriteTxt
|
|
52 bra ShowMenu and start over
|
|
53 DoCMP ldx #$0000 composite
|
|
54 bra SetMntr
|
|
55 DoMONO ldx #$0002 monochrome
|
|
56 bra SetMntr
|
|
57 DoRGB ldx #$0001 RGB
|
|
58 SetMntr ldd #($01*256)+SS.Montr
|
|
59 os9 I$SetStt set monitor type
|
|
60 leax >SwapDisk,pcr point to disk swap message
|
|
61 lbsr WriteTxt write text
|
|
62 lbsr Read1Chr read char
|
|
63 leax >CurOn,pcr
|
|
64 lbsr WriteTxt turn on cursor
|
|
65 leax >NewDir,pcr
|
|
66 lda #EXEC.
|
|
67 os9 I$ChgDir change directory
|
|
68 bcc L006C branch if successful
|
|
69 L0069 os9 F$Exit else exit
|
|
70 L006C ldb #$0C screen clear character
|
|
71 stb >$0186 store in buffer
|
|
72 ldx #$0186 point X to buffer
|
|
73 ldy #$0001 one byte
|
|
74 lda #$01 to stdout
|
|
75 os9 I$Write write it!
|
|
76 ldd #$1100
|
|
77 leax >SubPrg,pcr
|
|
78 ldy #$0000
|
|
79 ldu #$0082
|
|
80 os9 F$Chain chain to new program
|
|
81 bcs L0069 branch if error
|
|
82 ldd #$0000 code should never get here if chain worked!
|
|
83 os9 F$Exit
|
|
84
|
|
85 Read1Chr pshs y,x,b save regs
|
|
86 clra standard input
|
|
87 ldx #$0186 point to input buffer
|
|
88 ldy #$0001 get 1 char
|
|
89 os9 I$Read do it!
|
|
90 lda >$0186 get char at buffer ptr
|
|
91 puls pc,y,x,b and return
|
|
92
|
|
93 * Write string routine
|
|
94 * Note: terribly ineffecient
|
|
95 WriteTxt pshs y,b,a save registers
|
|
96 NextByte ldb ,x+ get byte at X
|
|
97 beq WritExit branch if zero
|
|
98 stb >$0186 else save
|
|
99 pshs x,b,a save registers again
|
|
100 ldx #$0186 point to buffer
|
|
101 ldy #$0001 1 char
|
|
102 lda #$01 to stdout
|
|
103 os9 I$Write write it
|
|
104 puls x,b,a pull registers
|
|
105 bra NextByte go get next char
|
|
106 WritExit puls pc,y,b,a return
|
|
107
|
|
108 CurOff fcb $05,$20,$00
|
|
109 CurOn fcb $05,$21,$00
|
|
110 Menu fcb $0c,$02,$20,$22
|
|
111 fcc /WHAT TYPE OF DISPLAY DO YOU HAVE/
|
|
112 fcb C$LF,C$CR,C$LF,C$CR
|
|
113 fcc / (1). Television/
|
|
114 fcb C$LF,C$CR,C$LF,C$CR
|
|
115 fcc / (2). Monochrome Monitor/
|
|
116 fcb C$LF,C$CR,C$LF,C$CR
|
|
117 fcc / (3). R.G.B. Monitor./
|
|
118 fcb 0
|
|
119 SwapDisk fcb $0C,$02,$23,$25
|
|
120 fcc /Insert side /
|
|
121 fcb $1f,$24,$32,$1f,$25
|
|
122 fcc / of diskette/
|
|
123 fcb C$LF,C$LF,C$CR
|
|
124 fcc / and press any key to continue/
|
|
125 fcb C$LF,C$LF,C$CR,00
|
|
126 Bell fcb C$BELL,$00
|
|
127 NewDir fcc !/d0/cmds!
|
|
128 fcb C$CR
|
|
129 SubPrg fcc /sub/
|
|
130 fcb C$CR
|
|
131
|
|
132 emod
|
|
133 eom equ *
|
|
134 end
|
|
135
|