home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Antic Magazine 1989 September
/
Antic_Magazine_1989_09_Antic_Side_A.atr
/
ramdisk.src
< prev
next >
Wrap
Text File
|
2023-02-26
|
24KB
|
1 lines
ATARI Macro Assembler Ver: 2.0A, RAMDISK.SRC¢¢¢ ******* SmartRAM 2.5¢ ******* by Tim Patrick, the Happy Hacker¢ ;¢ ******* (c)1989 Antic Publishing, Inc.¢ ;¢ ******* RAMDISK DRIVE NUMBER¢ = 0008 RAMDRV = 8 ;DOS 2.5=D8:¢ ;¢ ******* ZERO PAGE¢ = 0014 RTCLOK = $14¢ = 0021 ICDNOZ = $21¢ = 0032 BUFRLO = $32¢ = 0033 BUFRHI = $33¢ = 0034 BFENLO = $34¢ = 0035 BFENHI = $35¢ ;¢ ******* OTHER RAM¢ = 03FA GINTLK = $3FA ;CARTRIDGE?¢ = 03F8 BASICF = $3F8 ;ROM BASIC?¢ = 02E0 RUNAD = $2E0¢ = 02E2 INITAD = $2E2¢ = 02EA DVSTAT = $2EA¢ = 070A DRVBYT = $70A ;DRIVE MASK¢ = 070C SASA = $70C ;END FMS CODE¢ = 07E0 DINT = $7E0 ;FMS INIT¢ = 4000 TSTLC = $4000¢ = 7400 VTOCP1 = $7400 ;RD1050 VTOC1¢ = 4000 VTOCP2 = $4000 ;RD1050 VTOC2¢ = 009B CR = $9B¢ = 001C UP = $1C¢ = 007D CLR = 125¢ = 00FD BELL = 253¢ = 001D DOWN = $1D¢ = 001E LEFT = $1E¢ = 001F RIGHT = $1F¢ = 1481 GETBANK = $1481 ;DOS ROUTINES¢ = 12CB SETBANK = $12CB¢ = 07DF FASTRAM = $07DF ;SYNC W'VBI¢ = 14C4 RAM_OUT = $14C4 ;RAMDISK EXIT¢ = 0043 ZBUFP = $43¢ = 0042 CRITIC = $42¢ = 0B87 FIX_1 = $B87¢ = 105D S_FIX = $105D¢ = 0780 DVLOC_1 = $780 ;BSIO¢ = 0B89 DVLOC_2 = $B89 ;FORMAT¢ = 105F DVLOC_3 = $105F ;STATUS¢ = 0004 READ = 4¢ = 0008 WRITE = 8¢ = 0003 OPEN = 3¢ = 000C CLOSE = 12¢ = 0007 GET = 7¢ = 000B PUT = 11¢ = 153F MEMDUP = $153F ;MEM.SAV/DUP¢ = 008B NAK_ERR = 139¢ = 183A M_ADDR = $183A¢ = 1863 T_ADDR = M_ADDR+MEMEND-MEMFIX¢ ;¢ ******* OS ROM VECTORS¢ = E453 DSKINV = $E453¢ = E456 CIOV = $E456¢ = E459 SIOV = $E459¢ ;¢ ******* CHIP REGISTERS¢ = D301 PORTB = $D301¢ = D40E NMIEN = $D40E¢ ;¢ ******* DCB/IOCB¢ = 0300 DDEVIC = $300¢ = 0301 DUNIT = $301¢ = 0302 DCOMND = $302¢ = 0303 DSTATS = $303¢ = 0304 DBUFLO = $304¢ = 0305 DBUFHI = $305¢ = 030A DAUX1 = $30A¢ = 030B DAUX2 = $30B¢ ;¢ = 0342 ICCOM = $342¢ = 0344 ICBAL = $344¢ = 0345 ICBAH = $345¢ = 0348 ICBLL = $348¢ = 0349 ICBLH = $349¢ = 034A ICAX1 = $34A¢ = 034B ICAX2 = $34B¢ ;¢ ******* MACROS¢ SKW MACRO ;SKIP WORD¢ DB $FC ;BRANCH +2¢ ENDM¢ SKB MACRO ;SKIP BYTE¢ DB $F4 ;BRANCH +1¢ ENDM¢ ;¢ ******* INSTALLATION ROUTINE¢ ;¢ 0000 = 3000 ORG $3000¢ ;¢ ******* 256K EXTENDED MEMORY TEST¢ ;¢ 3000 AD01D3 INSTAL LDA PORTB¢ 3003 09FC ORA #$FC ;SET ALL BITS¢ 3005 48 PHA ;(SAVE IT)¢ 3006 AA TAX ;NORMAL IN X¢ 3007 ACAD33 LDY BIT_X ;XE BANK IN Y¢ 300A 20EC32 JSR MEMTST ;TEST IT¢ 300D 1002 ^3011 BPL TEST6¢ ;¢ 300F 68 PLA ;NO EXTRA RAM¢ 3010 60 RTS ;BYE!¢ ;¢ 3011 AE9C33 TEST6 LDX BIT_6 ;ANY AT 6?¢ 3014 20EC32 JSR MEMTST¢ 3017 8DB133 STA EXTRA ;192K FLAG(0)¢ ;¢ 301A AEA033 TEST5 LDX BIT_5 ;HOW ABOUT 5?¢ 301D 20EC32 JSR MEMTST¢ 3020 3012 ^3034 BMI TEST7¢ ;¢ ******* NEWELL/RAMBO?¢ ;¢ 3022 EEB133 INC EXTRA ;BIT-6(+)?¢ 3025 D023 ^304A BNE MEMX ;YUP, RAMBOXL¢ ;¢ 3027 A203 LDX #3¢ 3029 BDA933 LPN LDA NEWELL,X ;FIX TABLE¢ 302C 9D9C33 STA TABLE,X ;FOR NEWELL¢ 302F CA DEX¢ 3030 10F7 ^3029 BPL LPN¢ 3032 3013 ^3047 BMI EXIT¢ ;¢ ******* TEST FOR BIT-7¢ ;¢ 3034 AEA533 TEST_7 LDX BIT_7¢ 3037 20EC32 JSR MEMTST¢ 303A 300E ^304A BMI MEMX¢ ;¢ 303C A203 LDX #3¢ 303E BDA533 LP7 LDA BIT_7,X ;FIX TABLE¢ 3041 9DA033 STA TABLE2,X ;FOR BIT-7¢ 3044 CA DEX¢ 3045 10F7 ^303E BPL LP7¢ ;¢ ******* RAM TEST EXIT¢ ;¢ 3047 EEB133 EXIT INC EXTRA ;256K FLAG(+)¢ ;¢ 304A 68 MEMX PLA ;FIX $D301¢ 304B 8D01D3 STA PORTB¢ 304E ADB133 LDA EXTRA ;(-) = 128K¢ 3051 F024 ^3077 BEQ FIX_192 ;(0) = 192K¢ 3053 1025 ^307A BPL FIX_DOS ;(+) = 256K¢ ;¢ ******* 130XE RAMDISK INITIALIZATION¢ ;¢ 3055 A0CA XE_TYPE LDY #$CA ;(DEX)¢ 3057 8CDA30 STY V_TST1¢ 305A EEE230 INC V_TST2+1¢ ;¢ 305D A003 LDY #3¢ 305F 8CED30 STY CLEAR+1 ;ONLY 4 BANKS¢ 3062 B9AD33 XE_FIX LDA BIT_X,Y ;FIX TABLE¢ 3065 999C33 STA TABLE,Y ;AND MESSAGE¢ 3068 B97330 LDA XE_MSG,Y ;FOR 130XE¢ 306B 993333 STA MSG1+24+2,Y¢ 306E 88 DEY¢ 306F 10F1 ^3062 BPL XE_FIX¢ 3071 300A ^307D BMI MERGE¢ ;¢ 3073 4449534B XE_MSG DB 'DISK'¢ ;¢ ******* PATCH DOS 2.5 FOR 192/256K¢ ;¢ 3077 20D632 FIX_192 JSR SIXFIX ;ONLY 192K¢ ;¢ 307A 203A32 FIX_DOS JSR DOSFIX ;PATCH DOS¢ ;¢ ******* MERGE RAMDISK WITH DOS¢ ;¢ 307D A908 MERGE LDA #RAMDRV ;INSTALL¢ 307F AA TAX¢ 3080 8D8007 STA DVLOC_1 ;DRIVE¢ 3083 8D890B STA DVLOC_2 ;NUMBER¢ 3086 8D5F10 STA DVLOC_3 ;(DECIMAL)¢ 3089 18 CLC¢ 308A 6930 ADC #'0' ;(ASCII)¢ 308C 8D9933 STA DRIVE+1¢ 308F 8D3133 STA MSG1+24¢ 3092 8D7031 STA DRIVE_1+1¢ 3095 8DD631 STA DRIVE_2+1¢ ;¢ 3098 A900 LDA #0¢ 309A 38 SEC ;SET 1 BIT,¢ 309B 2A DRVLP ROL A ;THEN SHIFT¢ 309C CA DEX ;TO POSITION¢ 309D D0FC ^309B BNE DRVLP¢ 309F 0D0A07 ORA DRVBYT¢ 30A2 8D0A07 STA DRVBYT ;ADD TO TABLE¢ 30A5 20E007 JSR DINT¢ ;¢ ******* PRINT SMARTRAM MESSAGE¢ ;¢ 30A8 A219 LDX #LOW MSG1¢ 30AA A033 LDY #HIGH MSG1¢ 30AC A94F LDA #[MSGEND-MSG1]¢ 30AE 8D4803 STA ICBLL¢ 30B1 8E4403 STX ICBAL¢ 30B4 8C4503 STY ICBAH¢ 30B7 A200 LDX #0¢ 30B9 8E4903 STX ICBLH¢ 30BC A90B LDA #PUT¢ 30BE 8D4203 STA ICCOM¢ 30C1 2056E4 JSR CIOV¢ ;¢ ******* CHECK IF PREVIOUSLY FORMATTED¢ ;¢ 30C4 A202 LDX #2¢ 30C6 AD01D3 LDA PORTB¢ 30C9 48 PHA¢ 30CA 09FC ORA #$FC¢ 30CC 3D9C33 AND TABLE,X ;SELECT VTOC¢ 30CF 8D01D3 STA PORTB ;RAMDISK BANK¢ ;¢ 30D2 A000 LDY #0 ;COMPARE¢ 30D4 EC0074 V_TST0 CPX VTOCP1 ;VTOC BYTE-1¢ 30D7 F001 ^30DA BEQ V_TST1¢ 30D9 C8 INY¢ 30DA E8 V_TST1 INX¢ 30DB EC0274 CPX VTOCP1+2 ;VTOC BYTE-3¢ 30DE F001 ^30E1 BEQ V_TST2¢ 30E0 C8 INY¢ 30E1 A2F2 V_TST2 LDX #$F2¢ 30E3 EC0174 CPX VTOCP1+1 ;VTOC BYTE-2¢ 30E6 F001 ^30E9 BEQ V_DONE¢ 30E8 C8 INY¢ 30E9 98 V_DONE TYA ;FORMATTED?¢ 30EA F042 ^312E BEQ NO_FMT¢ ;¢ ******* CLEAR EXTRA RAM¢ ;¢ 30EC A207 CLEAR LDX #7 ;BANKS 0->7¢ 30EE AD01D3 FLP1 LDA PORTB¢ 30F1 09FC ORA #$FC¢ 30F3 3D9C33 AND TABLE,X ;GET FIRST¢ 30F6 8D01D3 STA PORTB¢ 30F9 A240 LDX #$40 ;SET UP¢ 30FB 8633 STX BUFRHI ;INDIRECT¢ 30FD A000 LDY #0 ;ADDRESS¢ 30FF 8432 STY BUFRLO¢ 3101 98 TYA ;CLEAR "A"¢ 3102 9132 FLP2 STA (BUFRLO),Y ;CLEAR A PAGE¢ 3104 C8 INY¢ 3105 D0FB ^3102 BNE FLP2¢ 3107 E633 INC BUFRHI ;NEXT PAGE¢ 3109 CA DEX¢ 310A D0F6 ^3102 BNE FLP2¢ 310C CEED30 DEC CLEAR+1 ;NEXT BANK¢ 310F 10DB ^30EC BPL CLEAR¢ ;¢ ******* SET UP XIO TO FORMAT¢ ;¢ 3111 203032 XIOFMT JSR DO_CLOSE ;CHANNEL-4¢ 3114 A9FE LDA #254 ;XIO FORMAT¢ 3116 9D4203 STA ICCOM,X¢ 3119 A998 LDA #LOW DRIVE¢ 311B 9D4403 STA ICBAL,X¢ 311E A933 LDA #HIGH DRIVE¢ 3120 9D4503 STA ICBAH,X¢ 3123 A900 LDA #0¢ 3125 9D4B03 STA ICAX2,X¢ 3128 9D4A03 STA ICAX1,X¢ 312B 2056E4 JSR CIOV¢ ;¢ 312E 68 NO_FMT PLA¢ 312F 8D01D3 STA PORTB¢ ;¢ ******* MOVE DUP.SYS TO D8:¢ ;¢ 3132 203032 JSR DO_CLOSE ;CLOSE FIRST¢ 3135 A903 LDA #OPEN ;OPEN¢ 3137 9D4203 STA ICCOM,X¢ 313A A904 LDA #READ ;FOR READ¢ 313C 9D4A03 STA ICAX1,X¢ 313F A982 LDA #LOW FILE ;D1:DUP.SYS¢ 3141 9D4403 STA ICBAL,X¢ 3144 A933 LDA #HIGH FILE¢ 3146 9D4503 STA ICBAH,X¢ 3149 2056E4 JSR CIOV¢ 314C 301C ^316A BMI OOPS_1 ;NO DUP(?)¢ ;¢ ******* READ IT IN TO BUFFER¢ ;¢ 314E A907 LDA #GET ;COPY FILE¢ 3150 9D4203 STA ICCOM,X¢ 3153 A906 LDA #LOW SIZE¢ 3155 9D4803 STA ICBLL,X¢ 3158 A914 LDA #HIGH SIZE¢ 315A 9D4903 STA ICBLH,X¢ 315D A9B3 LDA #LOW BUFFER¢ 315F 9D4403 STA ICBAL,X ;TO BUFFER¢ 3162 A933 LDA #HIGH BUFFER¢ 3164 9D4503 STA ICBAH,X¢ 3167 2056E4 JSR CIOV¢ 316A 3022 ^318E OOPS_1 BMI OOPS_2¢ 316C 203032 JSR DO_CLOSE¢ ;¢ ******* SWITCH TO D8: (#RAMDRV)¢ ;¢ 316F A938 DRIVE_1 LDA #8+'0' ;SET RAMDRIVE¢ 3171 8D8333 STA FILE+1¢ 3174 8D8E33 STA MEM_SAV+1¢ ;¢ ******* NOW OPEN FOR WRITE¢ ;¢ 3177 A903 OPEN_8 LDA #OPEN ;OPEN¢ 3179 9D4203 STA ICCOM,X¢ 317C A908 LDA #WRITE ;FOR WRITE¢ 317E 9D4A03 STA ICAX1,X¢ 3181 A982 LDA #LOW FILE ;D8:DUP.SYS¢ 3183 9D4403 STA ICBAL,X¢ 3186 A933 LDA #HIGH FILE¢ 3188 9D4503 STA ICBAH,X¢ 318B 2056E4 JSR CIOV¢ 318E 301C ^31AC OOPS_2 BMI OOPS_3¢ ;¢ ******* WRITE DUP.SYS TO D8:¢ ;¢ 3190 A90B WRTDUP LDA #PUT ;PUT BYTES¢ 3192 9D4203 STA ICCOM,X¢ 3195 A906 LDA #LOW SIZE¢ 3197 9D4803 STA ICBLL,X¢ 319A A914 LDA #HIGH SIZE¢ 319C 9D4903 STA ICBLH,X¢ 319F A9B3 LDA #LOW BUFFER ;FROM BUFFER¢ 31A1 9D4403 STA ICBAL,X¢ 31A4 A933 LDA #HIGH BUFFER¢ 31A6 9D4503 STA ICBAH,X¢ 31A9 2056E4 JSR CIOV ;WRITE FILE¢ 31AC 3064 ^3212 OOPS_3 BMI OOPS_4 ;(NEVER!)¢ ;¢ ******* CREATE MEM.SAV FILE¢ ;¢ 31AE 203032 JSR DO_CLOSE¢ 31B1 ADFA03 LDA GINTLK¢ 31B4 D005 ^31BB BNE MEM_FIL¢ 31B6 ADF803 LDA BASICF¢ 31B9 D017 ^31D2 BNE DUP_MEM¢ 31BB A903 MEM_FIL LDA #OPEN ;OPEN¢ 31BD 9D4203 STA ICCOM,X¢ 31C0 A908 LDA #WRITE ;FOR WRITE¢ 31C2 9D4A03 STA ICAX1,X¢ 31C5 A98D LDA #LOW MEMSAV ;D8:MEM.SAV¢ 31C7 9D4403 STA ICBAL,X¢ 31CA A933 LDA #HIGH MEMSAV¢ 31CC 9D4503 STA ICBAH,X¢ 31CF 2056E4 JSR CIOV¢ ;¢ ******* USE D8:DUP.SYS/MEM.SAV¢ ;¢ 31D2 203032 DUP_MEM JSR DO_CLOSE¢ 31D5 A938 DRIVE_2 LDA #8+'0'¢ 31D7 8D3F15 STA MEMDUP¢ ;¢ ******* IF 130XE, EXIT HERE¢ ;¢ 31DA ADB133 LDA EXTRA¢ 31DD 3051 ^3230 BMI DO_CLOSE¢ ;¢ ******* UPDATE DUP.SYS MENU¢ ;¢ 31DF A903 LDA #OPEN ;OPEN¢ 31E1 9D4203 STA ICCOM,X¢ 31E4 A90C LDA #READ+WRITE ;FOR UPDATE¢ 31E6 9D4A03 STA ICAX1,X¢ 31E9 A982 LDA #LOW FILE ;D8:DUP.SYS¢ 31EB 9D4403 STA ICBAL,X¢ 31EE A933 LDA #HIGH FILE¢ 31F0 9D4503 STA ICBAH,X¢ 31F3 2056E4 JSR CIOV¢ ;¢ ******* POINT TO DUP MENU TITLE¢ ;¢ 31F6 A907 LDA #GET ;GET¢ 31F8 9D4203 STA ICCOM,X¢ 31FB A930 LDA #LOW 48 ;48 BYTES¢ 31FD 9D4803 STA ICBLL,X¢ 3200 A900 LDA #HIGH 48¢ 3202 9D4903 STA ICBLH,X¢ 3205 A9B3 LDA #LOW BUFFER¢ 3207 9D4403 STA ICBAL,X¢ 320A A933 LDA #HIGH BUFFER¢ 320C 9D4503 STA ICBAH,X¢ 320F 2056E4 JSR CIOV¢ 3212 301C ^3230 OOPS_4 BMI DO_CLOSE ;(HUH?)¢ ;¢ ******* WRITE THE NEW TEXT DATA¢ ;¢ 3214 A90B LDA #PUT ;NOW, PUT¢ 3216 9D4203 STA ICCOM,X¢ 3219 A91A LDA #LOW [FILE-DUPMOD]¢ 321B 9D4803 STA ICBLL,X¢ 321E A900 LDA #HIGH [FILE-DUPMOD]¢ 3220 9D4903 STA ICBLH,X¢ 3223 A968 LDA #LOW DUPMOD ;NEW TEXT¢ 3225 9D4403 STA ICBAL,X¢ 3228 A933 LDA #HIGH DUPMOD¢ 322A 9D4503 STA ICBAH,X¢ 322D 2056E4 JSR CIOV ;INTO MENU¢ ;¢ ******* BE NEAT, CLOSE IT UP.¢ ;¢ 3230 A240 DOCLOSE LDX #$40¢ 3232 A90C LDA #CLOSE¢ 3234 9D4203 STA ICCOM,X¢ 3237 4C56E4 JMP CIOV ;BYE, BYE¢ ;¢ *********************¢ ******* *¢ ******* SUBROUTINES *¢ ******* *¢ *********************¢ ;¢ ******* PATCH DOS 2.5 FOR 256K¢ ;¢ 323A A909 DOS_FIX LDA #9¢ 323C 8D8E14 STA $148E¢ 323F A941 LDA #$41¢ 3241 8D9514 STA $1495¢ ;¢ 3244 A00A LDY #SETEND-SETFIX-1¢ 3246 B98E32 ST_FIX LDA SETFIX,Y¢ 3249 99DE12 STA $12DE,Y¢ 324C 88 DEY¢ 324D 10F7 ^3246 BPL ST_FIX¢ ;¢ 324F A013 LDY #RAMEND-RAMFIX-1¢ 3251 B99932 RM_FIX LDA RAMFIX,Y¢ 3254 99C414 STA RAMOUT,Y¢ 3257 88 DEY¢ 3258 10F7 ^3251 BPL RM_FIX¢ ;¢ 325A A008 LDY #8¢ 325C B99C33 T_MOVE LDA TABLE,Y¢ 325F 996318 STA T_ADDR,Y¢ 3262 88 DEY¢ 3263 10F7 ^325C BPL T_MOVE¢ 3265 A963 LDA #LOW T_ADDR¢ 3267 8DE712 STA T_FIX+1¢ 326A A918 LDA #HIGH T_ADDR¢ 326C 8DE812 STA T_FIX+2¢ ;¢ 326F ADC317 LDA $17C3¢ 3272 18 CLC¢ 3273 6902 ADC #MF_2-MEMFIX¢ 3275 8DCA17 STA $17CA¢ 3278 A028 LDY #MEMEND-MEMFIX-1¢ 327A B9AD32 M_MOVE LDA MEMFIX,Y¢ 327D 993A18 STA M_ADDR,Y¢ 3280 88 DEY¢ 3281 10F7 ^327A BPL M_MOVE¢ ;¢ ******* DRIVE FORMAT TABLE FIX¢ ;¢ 3283 A98A LDA #$8A¢ 3285 8D5D10 STA S_FIX¢ 3288 A906 LDA #6 ;OFFSET-6¢ 328A 8D870B STA FIX_1¢ 328D 60 RTS¢ ;¢ *********************¢ ******* *¢ ******* THE FIXES *¢ ******* *¢ *********************¢ ;¢ ******* SET-BANK ROUTINE¢ ;¢ 328E = 12DE# SETFIX LOC $12DE¢ 12DE# 2907 AND #%00000111 ;1024 = 0¢ 12E0# A8 FINISH TAY¢ 12E1# AD01D3 LDA PORTB¢ 12E4# 09FC ORA #$FC ;SET ALL¢ 12E6# 399C33 T_FIX AND TABLE,Y ;SELECT BANK¢ ;¢ 12E9# = 3299 ORG *O¢ = 3299 SETEND = *¢ ;¢ ******* RAMDISK I/O EXIT¢ ;¢ 3299 = 14C4# RAMFIX LOC RAM_OUT ;($14C4)¢ 14C4# AD01D3 LDA PORT_B¢ 14C7# 09FC ORA #$FC ;SET NO BANK¢ 14C9# 8D01D3 STA PORT_B¢ 14CC# A0C0 LDY #$C0¢ 14CE# 8C0ED4 STY NMIEN ;RESTORE NMI¢ 14D1# A000 LDY #0¢ 14D3# 8442 STY CRITIC ;CLEAR CRITIC¢ 14D5# 58 CLI ;RESTORE IRQ¢ 14D6# C8 INY ;GOOD STATUS¢ 14D7# 60 NEW_OUT RTS ;(+3 BYTES)¢ ;¢ 14D8# = 32AD ORG *O¢ = 32AD RAMEND = *¢ ;¢ 32AD FD9B MEMFIX DB BELL,CR¢ 32AF 1C4552524F MF_2 DB UP,'ERROR WRITING MEM.SAV - Y TO RUN DOS!',CR¢ = 32D6 MEMEND = *¢ ;¢ ******* 192K RAMDISK INITIALIZATION¢ ;¢ 32D6 A003 SIX_FIX LDY #3¢ 32D8 B9AD33 FIX_6 LDA BIT_X,Y ;FIX TABLE¢ 32DB 99A033 STA TABLE2,Y ;AND MESSAGE¢ 32DE B9E832 LDA MSG_192,Y ;FOR 192K¢ 32E1 997533 STA DUPMOD+13,Y¢ 32E4 88 DEY¢ 32E5 10F1 ^32D8 BPL FIX_6¢ 32E7 60 RTS¢ ;¢ 32E8 B1B9B2CB MSG_192 DC '1','9','2','K'¢ ;¢ ******* MEMORY TEST¢ ;¢ 32EC 8C01D3 MEMTST STY PORTB¢ 32EF AD0040 LDA TSTLC ;GET BYTE¢ 32F2 48 PHA ;AND SAVE IT¢ 32F3 8E01D3 STX PORTB ;SWAP BANKS¢ 32F6 CD0040 CMP TSTLC ;THEN COMPARE¢ 32F9 D013 ^330E BNE YUP¢ 32FB 8C01D3 STY PORTB ;INCASE DATA¢ 32FE 49FF EOR #$FF ;IS SAME¢ 3300 8D0040 STA TSTLC ;INVERT IT¢ 3303 8E01D3 STX PORTB ;AND COMPARE¢ 3306 CD0040 CMP TSTLC ;AGAIN...¢ 3309 D003 ^330E BNE YUP¢ 330B A2FF NOPE LDX #$FF ;FAILED FLAG¢ 330D SKW ;(SKIP WORD)¢ 330D +FC DB $FC ;(BRANCH +2)¢ 330E A200 YUP LDX #0 ;PASSED FLAG¢ 3310 8C01D3 STY PORTB¢ 3313 68 PLA ;RESTORE BYTE¢ 3314 8D0040 STA TSTLC¢ 3317 8A TXA ;SET FLAG¢ 3318 60 RTS¢ ;¢ ******* SMARTRAM MESSAGE¢ ;¢ ;SmartRAM-II DOS 2.5 D8:1050 EMULATOR¢ ;by Tim Patrick, COPYRIGHT 1989 ANTIC¢ ;¢ 3319 7D1C1C MSG1 DB CLR,UP,UP¢ 331C 536D617274 DB 'SmartRAM-II DOS 2.5 D8:1050 EMULATOR'¢ 3340 9B DB CR¢ 3341 6279205469 DB 'by Tim Patrick, COPYRIGHT 1989 ANTIC'¢ 3365 1F1F1D DB RIGHT,RIGHT,DOWN¢ = 3368 MSGEND = *¢ ;¢ ******* FILENAMES AND DATA¢ ;¢ 3368 CDCFC4C9C6 DUPMOD DC 'M','O','D','I','F','I'¢ 336E C5C4A0C6CF DC 'E','D',' ','F','O','R'¢ 3374 A0B2B5B6CB DC ' ','2','5','6','K',' '¢ 337A CDC1C3C8C9 DC 'M','A','C','H','I','N'¢ 3380 C5A1 DC 'E','!'¢ 3382 44313A4455 FILE DB 'D1:DUP.SYS',CR¢ 338D 44383A4D45 MEM_SAV DB 'D8:MEM.SAV',CR¢ = 1406 SIZE = 5126¢ 3398 44383A9B DRIVE DB 'D8:',$9B¢ ;¢ ******* MASTER BANK CONTROL TABLE¢ ;¢ 339C A3A7ABAF TABLE DB $A3,$A7,$AB,$AF¢ 33A0 C3C7CBCF TABLE2 DB $C3,$C7,$CB,$CF¢ 33A4 FF NORMAL DB $FF¢ = 339C BIT_6 = TABLE¢ = 33A0 BIT_5 = TABLE2¢ ;¢ ******* EXTRA RAM CONTROL BYTES¢ ;¢ 33A5 63676B6F BIT_7 DB $63,$67,$6B,$6F¢ 33A9 83878B8F NEWELL DB $83,$87,$8B,$8F¢ 33AD E3E7EBEF BIT_X DB $E3,$E7,$EB,$EF¢ 33B1 00 EXTRA DB 0¢ ;¢ ******* DUP.SYS COPY BUFFER¢ ;¢ = 33B3 BUFFER = *+1¢¢ 33B2 END INSTAL¢¢¢ no ERRORs, 139 Labels, $43F2 free.¢¢¢ Tim Patrick * Kailua, HI 96734¢