home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Archive Magazine 1995
/
ARCHIVE95.iso
/
discs
/
utilities
/
utility_01
/
modules
/
NewModes
/
VIDCSrc
< prev
Wrap
Text File
|
1991-02-17
|
26KB
|
1,146 lines
REM > EnhVIDCSrc
REM
REM Modified modes for NEC 3D
REM
REM (c) 1990 Andy Ling
REM
REM Address : 29 Manor Road
REM Burgess Hill
REM West Sussex
REM RH15 ONW
PROCInitialise
DIM code% code_size, L% -1 : REM This sets L% to limit of assembly
PROCAssemble
IF save AND (optlo AND %100) OSCLI "SAVE VIDCMod "+STR$~code%+"+"+STR$~P%: OSCLI "SETTYPE VIDCMod FFA"
*RMLOAD VIDCMod
END
DEFPROCInitialise
CLS
save = TRUE :optlo = %1100 : opthi = %1110
bstart = 121
start = 123
width = 640
bwidth = width + (start - bstart) * 2
length = 5
cycle = 776
sync = 36
wstart = 125
wwidth = 960
wlength = 121
mega_start = 141
mega_bstart = 139
mega_width = 1152
mega_bwidth = mega_width + (mega_start - mega_bstart) * 2
mega_length = 1
mega_cycle = 1400
mega_sync = 51
code_size = 4500 : REM Amount reserved for assembling code
REM ##### Set up register names
link = 14 : REM Link register for subroutine calls
sp = 13 : REM Stack pointer
ENDPROC
DEFPROCAssemble
FOR pass = optlo TO opthi STEP (opthi - optlo)
IF optlo AND %100 P%=0:O%=code% ELSE P%=code%:O%=0
[
OPT pass
;#####
;# relocatable module header
;#####
EQUD 0 ; Startcode
EQUD init ; Initialisation code
EQUD 0 ; Finalisation code
EQUD service ; Service requests
EQUD title ; Title string offset
EQUD help ; Help string offset
EQUD commands ; Command table offset
;#####
;# Help and title strings
;#####
.title
EQUS "VIDCMod"
EQUB 0
ALIGN
.help
EQUS "Modified Modes for NEC 3D with VIDC Enhancer"+CHR$9+"1.00 ("+MID$(TIME$,5,11)+")"
EQUS " (c) A. D. Ling"
EQUB 0
ALIGN
;#####
;# Commands recognised by module
;#####
.commands
EQUS "NormalModes"
EQUB 0
ALIGN
EQUD normal_mode
EQUD 0
EQUD 0
EQUD normal_help
EQUS "ExtendModes"
EQUB 0
ALIGN
EQUD extended_mode
EQUD 0
EQUD 0
EQUD extend_help
EQUD 0
.normal_help
EQUS "Use normal VIDC for modes 0 - 17"
EQUB 0
ALIGN
.extend_help
EQUS "Use VIDC enhancer for modes 0 - 17"
EQUB 0
ALIGN
;#####
;# Finalisation code - Don't die if it's fatal
;#####
.finalise
CMP R10 ,# 1 ; check for fatal finalisation
MOVNE PC ,link ; return if not fatal
ADR R0 ,error
ORRS PC ,link , #1<<28 ; set overflow flag
.error
EQUD &900
EQUS "VIDC module refuses to die"
EQUB 0
ALIGN
;#####
;# Initialisation code switches VIDC Enhancer on
;#####
.init
STMDB R13!,{R0-R9,R14}
MOV R0,#&87 ; read current mode
SWI "OS_Byte"
CMP R2,#&60
MOVCS R0,#1 ; mode > &60
MOVCC R0,#0 ; mode <= &60
CMP R2,#16
CMPNE R2,#17
MOVNE R2,R0
LDREQ R2,flag
LDR R3,lstore
LDR R4,latch
MOV R0,PC
ORR R1,R0,#&0C000000
TEQP R1,#0 ; clear status flags
LDRB R5,[R3,#0]
BIC R5,R5,#&20
ORR R5,R5,R2,LSL #5
STRB R5,[R3,#0] ; set bit 5 if wide
STRB R5,[R4,#0] ; mode and save it
TEQP R0,#0
LDMIA R13!,{R0-R9,PC}
ALIGN
.lstore
EQUD &00000105
.latch
EQUD &03350018
;#####
;# mode selection
;#####
.normal_mode
MOV R0 ,# 0
STR R0 ,flag
MOV PC ,link
.extended_mode
MOV R0 ,# 1
STR R0 ,flag
MOV R0 ,# 0
MOV PC ,link
;#####
;# Services OS_Module - Traps mode changes
;#####
.service
CMP R1 ,# &46 ; Mode change
BEQ init
CMP R1 ,# &50 ; Service mode extension
MOVNE PC ,link ; Return if not mode change
CMN R3 ,#1 ; test for monitor type
CMPNE R3 ,#1
MOVNE PC ,link ; return if not multisync
STMFD (sp)! ,{R5-R8,link}
ADR R5 ,table
LDR R8 ,flag
CMP R8 ,#0
MOVEQ R8 ,#(table_end - table) >> 2
MOVNE R8 ,#(table2_end - table) >> 2
MOV R6 ,# 0
.loop
LDR R7 ,[R5,R6,LSL #2]
CMP R2 ,R7
BEQ found
ADD R6 ,R6,#3
CMP R6 ,R8
BLT loop
LDMFD (sp)! ,{R5-R8,PC}
.found
MOV R1 ,# 0 ; claim mode change
ADR R7 ,m0work_list
ADD R6 ,R6,# 1
LDR R3 ,[R5,R6,LSL #2]
ADD R3 ,R3,R7
ADD R6 ,R6,# 1
LDR R4 ,[R5,R6,LSL #2]
ADD R4 ,R4,R7
LDMFD (sp)! ,{R5-R8,PC}
ALIGN
.flag
EQUD 1
.table
EQUD 18
EQUD m18vidc_list - m0work_list
EQUD m18work_list - m0work_list
EQUD 19
EQUD m19vidc_list - m0work_list
EQUD m19work_list - m0work_list
EQUD 20
EQUD m20vidc_list - m0work_list
EQUD m20work_list - m0work_list
EQUD 21
EQUD m21vidc_list - m0work_list
EQUD m21work_list - m0work_list
EQUD 76
EQUD m76vidc_list - m0work_list
EQUD m76work_list - m0work_list
EQUD 77
EQUD m77vidc_list - m0work_list
EQUD m77work_list - m0work_list
EQUD 78
EQUD m78vidc_list - m0work_list
EQUD m78work_list - m0work_list
EQUD 79
EQUD m79vidc_list - m0work_list
EQUD m79work_list - m0work_list
EQUD 96
EQUD m96vidc_list - m0work_list
EQUD m96work_list - m0work_list
EQUD 97
EQUD m97vidc_list - m0work_list
EQUD m97work_list - m0work_list
EQUD 98
EQUD m98vidc_list - m0work_list
EQUD m98work_list - m0work_list
EQUD 100
EQUD m100vidc_list - m0work_list
EQUD m100work_list - m0work_list
EQUD 101
EQUD m101vidc_list - m0work_list
EQUD m101work_list - m0work_list
EQUD 102
EQUD m102vidc_list - m0work_list
EQUD m102work_list - m0work_list
.table_end
.table2
EQUD 0
EQUD m0vidc_list - m0work_list
EQUD m0work_list - m0work_list
EQUD 1
EQUD m1vidc_list - m0work_list
EQUD m1work_list - m0work_list
EQUD 2
EQUD m2vidc_list - m0work_list
EQUD m2work_list - m0work_list
EQUD 3
EQUD m3vidc_list - m0work_list
EQUD m3work_list - m0work_list
EQUD 4
EQUD m4vidc_list - m0work_list
EQUD m4work_list - m0work_list
EQUD 5
EQUD m5vidc_list - m0work_list
EQUD m5work_list - m0work_list
EQUD 6
EQUD m6vidc_list - m0work_list
EQUD m6work_list - m0work_list
EQUD 7
EQUD m7vidc_list - m0work_list
EQUD m7work_list - m0work_list
EQUD 8
EQUD m8vidc_list - m0work_list
EQUD m8work_list - m0work_list
EQUD 9
EQUD m9vidc_list - m0work_list
EQUD m9work_list - m0work_list
EQUD 10
EQUD m10vidc_list - m0work_list
EQUD m10work_list - m0work_list
EQUD 11
EQUD m11vidc_list - m0work_list
EQUD m11work_list - m0work_list
EQUD 12
EQUD m12vidc_list - m0work_list
EQUD m12work_list - m0work_list
EQUD 13
EQUD m13vidc_list - m0work_list
EQUD m13work_list - m0work_list
EQUD 14
EQUD m14vidc_list - m0work_list
EQUD m14work_list - m0work_list
EQUD 15
EQUD m15vidc_list - m0work_list
EQUD m15work_list - m0work_list
EQUD 16
EQUD m16vidc_list - m0work_list
EQUD m16work_list - m0work_list
EQUD 17
EQUD m17vidc_list - m0work_list
EQUD m17work_list - m0work_list
.table2_end
.m0work_list
EQUD 0
EQUD 0
EQUD -1
.m0vidc_list
.m4vidc_list
EQUD 0
EQUD 0
EQUD &8063C000
EQUD &840BC000
EQUD &880F4000
EQUD &8C0D0000
EQUD &905D0000
EQUD &945F4000
EQUD &A04AC000
EQUD &A4008000
EQUD &A8064000
EQUD &AC064000
EQUD &B0464000
EQUD &B4464000
EQUD &E0000003
EQUD -1
.m1work_list
EQUD 0
EQUD 1
EQUD -1
.m1vidc_list
.m5vidc_list
EQUD 0
EQUD 1
EQUD &8031C000
EQUD &8405C000
EQUD &88078000
EQUD &8C064000
EQUD &902E4000
EQUD &942F8000
EQUD &A04AC000
EQUD &A4008000
EQUD &A8064000
EQUD &AC064000
EQUD &B0464000
EQUD &B4464000
EQUD &E0000005
EQUD -1
.m2work_list
EQUD 0
EQUD 2
EQUD -1
.m3work_list
EQUD 0
EQUD 3
EQUD -1
.m4work_list
EQUD 0
EQUD 4
EQUD -1
.m5work_list
EQUD 0
EQUD 5
EQUD -1
.m6work_list
EQUD 0
EQUD 6
EQUD -1
.m6vidc_list
EQUD 0
EQUD 6
EQUD &8031C000
EQUD &8405C000
EQUD &88078000
EQUD &8C064000
EQUD &902E4000
EQUD &942F8000
EQUD &A04AC000
EQUD &A4008000
EQUD &A8064000
EQUD &AC064000
EQUD &B044C000
EQUD &B444C000
EQUD &E0000005
EQUD -1
.m7work_list
EQUD 0
EQUD 7
EQUD -1
.m7vidc_list
EQUD 0
EQUD 7
EQUD &8031C000
EQUD &8405C000
EQUD &88078000
EQUD &8C06C000
EQUD &902EC000
EQUD &942F8000
EQUD &A04AC000
EQUD &A4008000
EQUD &A8064000
EQUD &AC064000
EQUD &B044C000
EQUD &B444C000
EQUD &E0000009
EQUD -1
.m8work_list
EQUD 0
EQUD 8
EQUD -1
.m8vidc_list
EQUD 0
EQUD 8
EQUD &8063C000
EQUD &840BC000
EQUD &880F4000
EQUD &8C0E0000
EQUD &905E0000
EQUD &945F4000
EQUD &A04AC000
EQUD &A4008000
EQUD &A8064000
EQUD &AC064000
EQUD &B0464000
EQUD &B4464000
EQUD &E0000007
EQUD -1
.m9work_list
EQUD 0
EQUD 9
EQUD -1
.m2vidc_list
.m9vidc_list
EQUD 0
EQUD 9
EQUD &8031C000
EQUD &8405C000
EQUD &88078000
EQUD &8C06C000
EQUD &902EC000
EQUD &942F8000
EQUD &A04AC000
EQUD &A4008000
EQUD &A8064000
EQUD &AC064000
EQUD &B0464000
EQUD &B4464000
EQUD &E0000009
EQUD -1
.m10work_list
EQUD 0
EQUD 10
EQUD -1
.m11work_list
EQUD 0
EQUD 11
EQUD -1
.m3vidc_list
.m11vidc_list
EQUD 0
EQUD 11
EQUD &8063C000
EQUD &840BC000
EQUD &880F4000
EQUD &8C0E0000
EQUD &905E0000
EQUD &945F4000
EQUD &A04AC000
EQUD &A4008000
EQUD &A8064000
EQUD &AC064000
EQUD &B044C000
EQUD &B444C000
EQUD &E0000007
EQUD -1
.m12work_list
EQUD 0
EQUD 12
EQUD -1
.m12vidc_list
EQUD 0
EQUD 12
EQUD &8063C000
EQUD &840BC000
EQUD &880F4000
EQUD &8C0E8000
EQUD &905E8000
EQUD &945F4000
EQUD &A04AC000
EQUD &A4008000
EQUD &A8064000
EQUD &AC064000
EQUD &B0464000
EQUD &B4464000
EQUD &E000000B
EQUD -1
.m13work_list
EQUD 0
EQUD 13
EQUD -1
.m10vidc_list
.m13vidc_list
EQUD 0
EQUD 13
EQUD &8031C000
EQUD &8405C000
EQUD &88078000
EQUD &8C074000
EQUD &902F4000
EQUD &942F8000
EQUD &A04AC000
EQUD &A4008000
EQUD &A8064000
EQUD &AC064000
EQUD &B0464000
EQUD &B4464000
EQUD &E000000D
EQUD -1
.m14work_list
EQUD 0
EQUD 14
EQUD -1
.m14vidc_list
EQUD 0
EQUD 14
EQUD &8063C000
EQUD &840BC000
EQUD &880F4000
EQUD &8C0E8000
EQUD &905E8000
EQUD &945F4000
EQUD &A04AC000
EQUD &A4008000
EQUD &A8064000
EQUD &AC064000
EQUD &B044C000
EQUD &B444C000
EQUD &E000000B
EQUD -1
.m15work_list
EQUD 0
EQUD 15
EQUD -1
.m15vidc_list
EQUD 0
EQUD 15
EQUD &8063C000
EQUD &840BC000
EQUD &880F4000
EQUD &8C0F0000
EQUD &905F0000
EQUD &945F4000
EQUD &A04AC000
EQUD &A4008000
EQUD &A8064000
EQUD &AC064000
EQUD &B0464000
EQUD &B4464000
EQUD &E000000F
EQUD -1
.m16work_list
EQUD 0
EQUD 16
EQUD -1
.m16vidc_list
EQUD 0
EQUD 16
EQUD &80A24000
EQUD &84108000
EQUD &88190000
EQUD &8C184000
EQUD &909C4000
EQUD &949D0000
EQUD &A04AC000
EQUD &A4008000
EQUD &A8064000
EQUD &AC064000
EQUD &B0464000
EQUD &B4464000
EQUD -1
.m17work_list
EQUD 0
EQUD 17
EQUD -1
.m17vidc_list
EQUD 0
EQUD 17
EQUD &80A24000
EQUD &84108000
EQUD &88190000
EQUD &8C184000
EQUD &909C4000
EQUD &949D0000
EQUD &A04AC000
EQUD &A4008000
EQUD &A8064000
EQUD &AC064000
EQUD &B044C000
EQUD &B444C000
EQUD -1
.m18vidc_list
EQUD 0
EQUD 18 ; Base MODE
EQUD &80000000 OR (start + width + length - 2) / 2 << 14
EQUD &84000000 OR (sync - 2) / 2 << 14
EQUD &88000000 OR (start - 1) / 2 << 14
EQUD &8C000000 OR (start - 19) / 2 << 14
EQUD &90000000 OR (start + width - 19) / 2 << 14
EQUD &94000000 OR (start + width - 1) / 2 << 14
EQUD -1 ; End
.m18work_list
EQUD 0
EQUD 18 ; Base MODE
EQUD -1 ; End
.m19vidc_list
EQUD 0
EQUD 19 ; Base MODE
EQUD &80000000 OR (start + width + length - 2) / 2 << 14
EQUD &84000000 OR (sync - 2) / 2 << 14
EQUD &88000000 OR (start - 1) / 2 << 14
EQUD &8C000000 OR (start - 11) / 2 << 14
EQUD &90000000 OR (start + width - 11) / 2 << 14
EQUD &94000000 OR (start + width - 1) / 2 << 14
EQUD -1 ; End
.m19work_list
EQUD 0
EQUD 19 ; Base MODE
EQUD -1 ; End
.m20vidc_list
EQUD 0
EQUD 20 ; Base MODE
; EQUD &80000000 OR (start + width + length - 2) / 2 << 14
EQUD &80000000 OR (cycle - 2) / 2 << 14
EQUD &84000000 OR (sync - 2) / 2 << 14
EQUD &88000000 OR (bstart - 1) / 2 << 14
EQUD &8C000000 OR (start - 7) / 2 << 14
EQUD &90000000 OR (start + width - 7) / 2 << 14
EQUD &94000000 OR (bstart + bwidth - 1) / 2 << 14
EQUD -1 ; End
.m20work_list
EQUD 0
EQUD 20 ; Base MODE
EQUD -1 ; End
.m21vidc_list
EQUD 0
EQUD 21 ; Base MODE
EQUD &80000000 OR (start + width + length - 2) / 2 << 14
EQUD &84000000 OR (sync - 2) / 2 << 14
EQUD &88000000 OR (start - 1) / 2 << 14
EQUD &8C000000 OR (start - 5) / 2 << 14
EQUD &90000000 OR (start + width - 5) / 2 << 14
EQUD &94000000 OR (start + width - 1) / 2 << 14
EQUD -1 ; End
.m21work_list
EQUD 0
EQUD 21 ; Base MODE
EQUD -1 ; End
.m76vidc_list
EQUD 0
EQUD 18 ; Base MODE
EQUD &80000000 OR (wstart + wwidth + wlength - 2) / 2 << 14
EQUD &84000000 OR &02D << 14
EQUD &88000000 OR (wstart - 1) / 2 << 14
EQUD &8C000000 OR (wstart - 19) / 2 << 14
EQUD &90000000 OR (wstart + wwidth - 19) / 2 << 14
EQUD &94000000 OR (wstart + wwidth - 1) / 2 << 14
EQUD &9C000000 OR &0E0 << 14
EQUD &A0000000 OR &199 << 14
EQUD &A4000000 OR &000 << 14
EQUD &A8000000 OR &013 << 14
EQUD &AC000000 OR &013 << 14
EQUD &B0000000 OR &193 << 14
EQUD &B4000000 OR &193 << 14
EQUD &E0000000 OR &033
EQUD -1 ; End
.m76work_list
EQUD 0
EQUD 18 ; Base MODE
EQUD 1
EQUD 119
EQUD 2
EQUD 47
EQUD 3
EQUD 1
EQUD 4
EQUD 1
EQUD 5
EQUD 2
EQUD 6
EQUD 120
EQUD 7
EQUD &B400
EQUD 8
EQUD 4
EQUD 9
EQUD 0
EQUD 10
EQUD 0
EQUD 11
EQUD 959
EQUD 12
EQUD 383
EQUD -1 ; End
.m77vidc_list
EQUD 0
EQUD 19 ; Base MODE
EQUD &80000000 OR (wstart + wwidth + wlength - 2) / 2 << 14
EQUD &84000000 OR &02D << 14
EQUD &88000000 OR (wstart - 1) / 2 << 14
EQUD &8C000000 OR (wstart - 11) / 2 << 14
EQUD &90000000 OR (wstart + wwidth - 11) / 2 << 14
EQUD &94000000 OR (wstart + wwidth - 1) / 2 << 14
EQUD &9C000000 OR &0E0 << 14
EQUD &A0000000 OR &199 << 14
EQUD &A4000000 OR &000 << 14
EQUD &A8000000 OR &013 << 14
EQUD &AC000000 OR &013 << 14
EQUD &B0000000 OR &193 << 14
EQUD &B4000000 OR &193 << 14
EQUD &E0000000 OR &037
EQUD -1 ; End
.m77work_list
EQUD 0
EQUD 19 ; Base MODE
EQUD 1
EQUD 119
EQUD 2
EQUD 47
EQUD 3
EQUD 3
EQUD 4
EQUD 1
EQUD 5
EQUD 2
EQUD 6
EQUD 240
EQUD 7
EQUD &16800
EQUD 8
EQUD 5
EQUD 9
EQUD 1
EQUD 10
EQUD 1
EQUD 11
EQUD 959
EQUD 12
EQUD 383
EQUD -1 ; End
.m78vidc_list
EQUD 0
EQUD 20 ; Base MODE
EQUD &80000000 OR (wstart + wwidth + wlength - 2) / 2 << 14
EQUD &84000000 OR &02D << 14
EQUD &88000000 OR (wstart - 1) / 2 << 14
EQUD &8C000000 OR (wstart - 7) / 2 << 14
EQUD &90000000 OR (wstart + wwidth - 7) / 2 << 14
EQUD &94000000 OR (wstart + wwidth - 1) / 2 << 14
EQUD &9C000000 OR &0E0 << 14
EQUD &A0000000 OR &199 << 14
EQUD &A4000000 OR &000 << 14
EQUD &A8000000 OR &013 << 14
EQUD &AC000000 OR &013 << 14
EQUD &B0000000 OR &193 << 14
EQUD &B4000000 OR &193 << 14
EQUD &E0000000 OR &02B
EQUD -1 ; End
.m78work_list
EQUD 0
EQUD 20 ; Base MODE
EQUD 1
EQUD 119
EQUD 2
EQUD 47
EQUD 3
EQUD 15
EQUD 4
EQUD 1
EQUD 5
EQUD 2
EQUD 6
EQUD 480
EQUD 7
EQUD &2D000
EQUD 8
EQUD 6
EQUD 9
EQUD 2
EQUD 10
EQUD 2
EQUD 11
EQUD 959
EQUD 12
EQUD 383
EQUD -1 ; End
.m79vidc_list
EQUD 0
EQUD 21 ; Base MODE
EQUD &80000000 OR (wstart + wwidth + wlength - 2) / 2 << 14
EQUD &84000000 OR &02D << 14
EQUD &88000000 OR (wstart - 1) / 2 << 14
EQUD &8C000000 OR (wstart - 5) / 2 << 14
EQUD &90000000 OR (wstart + wwidth - 5) / 2 << 14
EQUD &94000000 OR (wstart + wwidth - 1) / 2 << 14
EQUD &9C000000 OR &0E0 << 14
EQUD &A0000000 OR &199 << 14
EQUD &A4000000 OR &000 << 14
EQUD &A8000000 OR &013 << 14
EQUD &AC000000 OR &013 << 14
EQUD &B0000000 OR &193 << 14
EQUD &B4000000 OR &193 << 14
EQUD &E0000000 OR &00F
EQUD -1 ; End
.m79work_list
EQUD 0
EQUD 21 ; Base MODE
EQUD 1
EQUD 119
EQUD 2
EQUD 47
EQUD 3
EQUD 63
EQUD 4
EQUD 1
EQUD 5
EQUD 2
EQUD 6
EQUD 960
EQUD 7
EQUD &5A000
EQUD 8
EQUD 7
EQUD 9
EQUD 3
EQUD 10
EQUD 3
EQUD 11
EQUD 959
EQUD 12
EQUD 383
EQUD -1 ; End
.m96vidc_list
EQUD &00000000
EQUD &00000012
EQUD &807CC000
EQUD &840EC000
EQUD &8813C000
EQUD &8C118000
EQUD &90758000
EQUD &9477C000
EQUD &A09D4000
EQUD &A4010000
EQUD &A8064000
EQUD &AC064000
EQUD &B09C4000
EQUD &B49C4000
EQUD -1
.m96work_list
EQUD &00000000
EQUD &00000012
EQUD &00000001
EQUD &00000063
EQUD &00000002
EQUD &0000004A
EQUD &00000006
EQUD &00000064
EQUD &00000007
EQUD &0000EA60
EQUD &0000000B
EQUD &0000031F
EQUD &0000000C
EQUD &00000257
EQUD -1
.m97vidc_list
EQUD &00000000
EQUD &00000013
EQUD &807CC000
EQUD &840EC000
EQUD &8813C000
EQUD &8C128000
EQUD &90768000
EQUD &9477C000
EQUD &A09D4000
EQUD &A4010000
EQUD &A8064000
EQUD &AC064000
EQUD &B09C4000
EQUD &B49C4000
EQUD -1
.m97work_list
EQUD &00000000
EQUD &00000013
EQUD &00000001
EQUD &00000063
EQUD &00000002
EQUD &0000004A
EQUD &00000006
EQUD &000000C8
EQUD &00000007
EQUD &0001D4C0
EQUD &0000000B
EQUD &0000031F
EQUD &0000000C
EQUD &00000257
EQUD -1
.m98vidc_list
EQUD &00000000
EQUD &00000014
EQUD &807CC000
EQUD &840EC000
EQUD &8813C000
EQUD &8C130000
EQUD &90770000
EQUD &9477C000
EQUD &A09D4000
EQUD &A4010000
EQUD &A8064000
EQUD &AC064000
EQUD &B09C4000
EQUD &B49C4000
EQUD -1
.m98work_list
EQUD &00000000
EQUD &00000014
EQUD &00000001
EQUD &00000063
EQUD &00000002
EQUD &0000004A
EQUD &00000006
EQUD &00000190
EQUD &00000007
EQUD &0003A980
EQUD &0000000B
EQUD &0000031F
EQUD &0000000C
EQUD &00000257
EQUD -1
.m100vidc_list
EQUD 0
EQUD 18
EQUD &80000000 OR (mega_cycle - 2) / 2 << 14
EQUD &84000000 OR (mega_sync - 2) / 2 << 14
EQUD &88000000 OR (mega_bstart - 1) / 2 << 14
EQUD &8C000000 OR (mega_start - 19) / 2 << 14
EQUD &90000000 OR (mega_start + mega_width - 19) / 2 << 14
EQUD &94000000 OR (mega_bstart + mega_bwidth - 1) / 2 << 14
EQUD &A07CC000
EQUD &A4028000
EQUD &A8094000
EQUD &AC094000
EQUD &B0794000
EQUD &B4794000
EQUD -1
.m100work_list
EQUD &00000000
EQUD &00000012
EQUD &00000001
EQUD &0000008F
EQUD &00000002
EQUD &00000037
EQUD &00000005
EQUD &00000002
EQUD &00000006
EQUD &00000090
EQUD &00000007
EQUD &0000FC00
EQUD &0000000B
EQUD &0000047F
EQUD &0000000C
EQUD &000001BF
EQUD -1
.m101vidc_list
EQUD 0
EQUD 19
EQUD &80000000 OR (mega_cycle - 2) / 2 << 14
EQUD &84000000 OR (mega_sync - 2) / 2 << 14
EQUD &88000000 OR (mega_bstart - 1) / 2 << 14
EQUD &8C000000 OR (mega_start - 11) / 2 << 14
EQUD &90000000 OR (mega_start + mega_width - 11) / 2 << 14
EQUD &94000000 OR (mega_bstart + mega_bwidth - 1) / 2 << 14
EQUD &A07CC000
EQUD &A4028000
EQUD &A8094000
EQUD &AC094000
EQUD &B0794000
EQUD &B4794000
EQUD -1
.m101work_list
EQUD &00000000
EQUD &00000013
EQUD &00000001
EQUD &0000008F
EQUD &00000002
EQUD &00000037
EQUD &00000005
EQUD &00000002
EQUD &00000006
EQUD &00000120
EQUD &00000007
EQUD &0001F800
EQUD &0000000B
EQUD &0000047F
EQUD &0000000C
EQUD &000001BF
EQUD -1
.m102vidc_list
EQUD 0
EQUD 20
; EQUD &80000000 OR (mega_start + 1152 + 7 - 2) / 2 << 14
EQUD &80000000 OR (mega_cycle - 2) / 2 << 14
EQUD &84000000 OR (mega_sync - 2) / 2 << 14
EQUD &88000000 OR (mega_bstart - 1) / 2 << 14
EQUD &8C000000 OR (mega_start - 7) / 2 << 14
EQUD &90000000 OR (mega_start + mega_width - 7) / 2 << 14
EQUD &94000000 OR (mega_bstart + mega_bwidth - 1) / 2 << 14
EQUD &A07CC000
EQUD &A4028000
EQUD &A8094000
EQUD &AC094000
EQUD &B0794000
EQUD &B4794000
EQUD -1
.m102work_list
EQUD &00000000
EQUD &00000014
EQUD &00000001
EQUD &0000008F
EQUD &00000002
EQUD &00000037
EQUD &00000005
EQUD &00000002
EQUD &00000006
EQUD &00000240
EQUD &00000007
EQUD &0003F000
EQUD &0000000B
EQUD &0000047F
EQUD &0000000C
EQUD &000001BF
EQUD -1
]
NEXT pass
ENDPROC