亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dvdstart.s

?? 一個兩碟控制的VCD的代碼,兩碟之間的轉動及連續播放,已大量生產的CODE.
?? S
字號:
; Copyright 1996, ESS Technology, Inc; SCCSID @(#)dvdstart.s	1.1 10/24/97 ; ;	$Log$;; This version is based on version 2.2 of 3204 code.;; ROM loader source code.;; Assemble and link with the following switches:;       ax -R startup.s;       ld  -Ttext 0cfffde4 -e powerup -X -o startup.sun startup.o; Notice that we want the code to start at 0cfffe04, since there is a; 20h-byte header, we set the starting point of text to 0cfffde4.;; IMPORTANT : See ERS to see how to set RIFACE_WIDTH and RIFACE_WAITSTATE;             for different bank used as EPROM;; This file uses Bank3 as example;; address 4xxxxxx for bank1; address 8xxxxxx for bank2; address Cxxxxxx for bank3;; WHEN MAKING CHANGES TO THIS CODE, MAKE SURE THE FOLLOWING TWO LOCATIONS ; REMAIN UNCHANGED:;       powerup :     0x 0cff ff80;       LastLoc :     0x 0cff fffc;; This code accomplishes the following three things:;       1) Set up PSW;       2) Read commands and arguments prestored in ROM, and execute the;          commands to download code from ROM to SRAM.;       3) As the last step, a jump command is expected to goto a location;          specified by the argument. After a jump command, this code will;          never get control again.;; Diagram of ROM (suppose EPROM bank3 address base is 0xc000000);   ROM base |--------------|;  0xc000000 | ROM header   | size = 16 Bytes;            |--------------|;            | file 1       |;            |--------------|;                  .;           file 2 -- file N-1  ;                  .;            |--------------|;            | file N       |;            |--------------|;            | command      | size = 4 * 4 * cmdblkn (Bytes);            | block        |;            |--------------| ;            |              |;            |--------------| ;            | boot code    | entry point always set at 0x0cffff80;            |--------------| ; 0x0cfffffc | address of   | 4 Bytes;            | ROM header   |;            |--------------| ;; Since ESS' ROM emulator uses locations 0xc000000 and 0xc000004 to; communicate with the PC host, newer code usually starts at 0xc040000.; Since ROM is only 128K/256K, 0xc040000 is effectly the same as 0xc000000 ; from ROM's point's of view; however, emulator can depend on the bit 18; to differentiate ROM access versus emulator access.;; ROM header:;	1) Version (usually is the date when the ROM is made) (4B);	2) Starting location of command block (4B);	3) Number of entris in command block (4B);	4) Number of files (4B);		; ROM loader supports the folowing commands:;       1) COPY(1) : download data from ROM to SRAM;               Arguments : ROM_addr SRAM_addr size;		where:;                 - ROM_addr  is the byte address of data to be downloaded;                 - SRAM_addr is the target byte address to write to;                 - size      is the dword size of data to be written;       2) CLEAR(2) : clear a piece of SRAM to 0;               Arguments : SRAM_addr size;		where:;                 - SRAM_addr is the starting byte address to be cleared;                 - size      is the dword size of SRAM to be cleared;       3) JUMP(3) : jump to the given address;               Arguments : address;		where:;                 - address is the dword address of target code;       4) JSR(4) : call subroutine at given address;               Arguments : address;		where:;                 - address is the dword address of target subroutine;       5) SET24(5) : set value of r24;               Arguments: value;		where:;                 - value is the value;       6) SET25(6) : set value of r25;               Arguments: value;		where:	;                 - value is the value;       7) SET23(7) : set value of r23;               Arguments: value;		where:	;                 - value is the value	; Address of romheader is given at address 0x0cfffffc (LastLoc),; This is done by rom2;; The following macros have to be modified for various different setup:; 	0x7;		0x7	for bank 0 (simulation);		0x4ff	for bank 1;		0x8ff	for bank 2;		0xcff	for bank 3;; 	0x7ff;		see ERS;; 	0x801d ;		see ERS;        .data        .globl dstartdstart:        .globl _environ_environ:        .text	.globl powerup        .globl tstart        .globl _tstart        .globl LastLoc	.noreorg	        .def    RIFACE_WIDTH            =0x20004000        .def    RIFACE_WAIT_STATE       =0x20004004        .def    RIFACE_TURNOFF_DELAY    =0x20004008tstart:_tstart:Switch:        addi    r0,#0x1400,r2        lsl     r2,r2,#16        addi    r0,#0x0c,r5        sb      0[r2],r5         beq     r4,r0,L9        nop     ;via slot (len 1)        addi    r0,#-17,r3      ; movqi -17 -> r3        addi    r0,#16,r3       ; movqi 16 -> r3L9:        sb      0[r2],r3         addi    r0,#14,r3       ; movqi 14 -> r3        sb      0[r2],r3        addi    r0,#16,r3       ; movqi 16 -> r3        sb      0[r2],r3         addi    r0,#0x33f,r2        lsl     r2,r2,#16        addi    r2,#0xffe0,r2         jspci   r2,#0,r0        nop        nop ParseCmd:; struct romheader {;    longword version;;    longword cmdblkptr;        /* location of commands and arguments   */;    longword cmdblkn;          /* number of commands to be executed    */;    longword nfiles;           /* number of files in ROM               */; } header;; Each command occupies 4 dwords, the first one is command type, the other; three are arguments; Temp variables:;       r9 : address of romheader;       r10: start address of command block;       r11: number of commands to be executed;        addi r0,#0x1cff,r9         	 ; r9 = first half of last ROM loc.        sh   r0,r9,r9,#16                ; r9 << = 16 (0xcff0000)        addi r9,#0xfffc,r9               ; r9 = 0xcfffffc        ld   0x0[r9],r9                  ; r9 : location of romheader        nop        st   0xc[r0],r9                  ; save it        nop        ld   0x4[r9],r10                 ; r10 = cmdblkptr        nop        st   0x10[r0],r10                ; save it        nop        ld   0x8[r9],r11                 ; r11 = cmdblkn        nop        st   0x14[r0],r11        nop        mov  r0,r7                       ; r7 : loop counter for                                         ; executed commands LoopCmd:        ld   0x0[r10],r3                 ; r3 : first 4B is cmd type        addi r0,#0x1,r2                  ; r2 = 1 (COPY)        beq  r2,r3,Copy                  ; goto Copy        addi r0,#0x2,r2                  ; r2 = 2 (CLEAR)        nop        beq  r2,r3,Clear                 ; goto Clear        addi r0,#0x3,r2                  ; r2 = 3 (JUMP)        nop        beq  r2,r3,Jump                  ; goto Jump        addi r0,#0x4,r2                  ; r2 = 4 (JSR)        nop        beq  r2,r3,Jsr                   ; goto Jsr        addi r0,#0x5,r2                  ; r2 = 5 (SET24)        nop        beq  r2,r3,Set24                 ; goto Set24        addi r0,#0x6,r2                  ; r2 = 6 (SET25)        nop        beq  r2,r3,Set25                 ; goto Set25        addi r0,#0x7,r2                  ; r2 = 7 (SET23)        nop        beq  r2,r3,Set23                 ; goto Set23        nop        nopNextCmd:        addi r7,#0x1,r7                  ; increment loop counter        addi r10,#0x10,r10               ; move pointer to next cmdblk        bne  r7,r11,LoopCmd              ; loop if not done        nop        nopCopy:; copy data from source address to destination address; arguments : src_addr, dest_addr, size; Temp variables:;       r4 : address of source data;       r5 : address of destination;       r6 : loop counter;       r10: start address of command arguments;        ld   0x4[r10],r4                 ; address of source data        ld   0x8[r10],r5                 ; address of destination        ld   0xc[r10],r6                 ; r6 : loop countersize to copy        nop        beq   r0,r6,NextCmd              ; do copy if size > 0        nop        nopLoopCopy:                                            ld   0x0[r4],r2                  ; load one dword        nop        nop                                          st   0x0[r5],r2                  ; copy to dest        nop        addi r4,#0x4,r4                  ; move pointer to next dword data        addi r5,#0x4,r5                  ; move pointer to next target address        addi r6,#-1,r6                   ; decrement loop counter        bne  r6,r0,LoopCopy              ; loop copy        nop        nop        beq   r0,r0,NextCmd              ; continue to next command if done        nop        nop        Clear:; clear memory starting from given address to 0; arguments : start_addr, size; Temp variables:;       r4 : address of source data;       r6 : loop counter;       r10: start address of command arguments;        ld   0x4[r10],r4                 ; starting address to clear        ld   0x8[r10],r6                 ; loop counter : size to clear        nop        beq   r0,r6,NextCmd              ; do clear if size >0        nop        nopLoopClear:        st   0x0[r4],r0                  ; clear one dword        nop        addi r4,#0x4,r4                  ; move to next address        addi r6,#-1,r6                   ; decrement loop counter        bne  r6,r0,LoopClear             ; loop clear        nop        nop        beq   r0,r0,NextCmd              ; continue to next command if done        nop        nopSet25:; set new value of r25; arguments : value; Temp variables:;       r10: start address of command arguments;        beq  r0,r0,NextCmd               ; continue to next command        ld   0x4[r10],r25                ; r25 = value        nopSet24:; set new value of r24; arguments : value; Temp variables:;       r10: start address of command arguments;        beq  r0,r0,NextCmd               ; continue to next command        ld   0x4[r10],r24                ; r24 = value        nopSet23:; set new value of r23; arguments : value; Temp variables:;       r10: start address of command arguments;        beq  r0,r0,NextCmd               ; continue to next command        ld   0x4[r10],r23                ; r23 = value        nop        Jump:; jump to given address; arguments : dest_addr; Temp variables:;       r4 : address to jump to;       r10: start address of command arguments;        ld   0x4[r10],r4                 ; r4 : address to jump        nop        jspci   r4,#0x0,r0               ; jump	nop	nopJsr:; call subroutine starting at given address; arguments : subroutine_addr; Temp variables:;       r4 : address to jump to;       r10: start address of command arguments;        ld   0x4[r10],r4                 ; address to jump         nop        st   0x20[r0],r6        st   0x24[r0],r7        jspci    r4,#0x0,r31        st   0x28[r0],r10        st   0x2c[r0],r11                ; save registers        ld   0x20[r0],r6        ld   0x24[r0],r7        beq   r0,r0,NextCmd              ; continue to next command         ld   0x28[r0],r10        ld   0x2c[r0],r11                ; restore registers; Power up always starts here; Temp. vars:;	r1:	PSW;	r2:	MEMWIDTH/mask;	r3:	MEMDELAY;	r5:	12000000h;	r6;	10000000h;	r21:	Read back from 10000000 (c3h is 3210!!);       r27:    omnibasepowerup:        addi r0,#0xc3,r1        movtos r1,psw			 ; set PSW        addi r0,#0x2000,r27              ; r27 = 0x2000        sh   r0,r27,r27,#16              ; r27 = r27 << 16 (i.e. omnibase)	addi r0,#0x1200,r5	sh   r0,r5,r5,#16		 ; r5 -> non-cachable DRAM 0	addi r0,#0x1000,r6	sh   r0,r6,r6,#16		 ; r6 -> non-cachable 0					 ; (SRAM for 3208, DRAM for 3210)	addi r0,#_WIDTH10_,r2	 	 ; Width for 3210 (bank 0 is DRAM)	st   0x4000[r27],r2		 ; Set RIFACE_WIDTH	; If the chip is 3210, then we can write to DRAM location and	; read it back from the same location from bank 0. If the chip	; is 3208, then bank 0 is not DRAM due to RIFACE_WIDTH set up	st   0x1000[r5],r1		 ; Write 0xc3 to 0x12001000	st   0x0000[r5],r0		 ; Change the data bus value in case					 ; capacitor holds r1 value for the					 ; next read	ld   0x1000[r6],r21		 ; Read from 0x10000000	addi r0,#0xff,r2		 ; r2 = 0xff (mask)	and  r21,r2,r21			 ; Only look at the last 8b	beq  r1,r21,set_delay        addi r0,#_MEMDELAYH_,r3          ; r3  = 0x1d (3208 + wait state)					 ; (Load delay)        sh   r0,r3,r3,#16                ; r3  << = 16 (0x1d0000)es3208:	addi r0,#_MEMWIDTH_,r2		 ; r2 holds width setting for 3208	st   0x4000[r27],r2		 ; Set RIFACE_WIDTH for 3208set_delay:        addi r3,#_MEMDELAYL_,r3          ; r3  = Wait states of memory banks					 ; 1d001e = 1 (0x1a, 0, 0, 0x1e) or					 ; 1d801e = 1 (0x1b, 0, 0, 0x1e)					 ; which means: 3208					 ; bank3:  5 (1a) or 4 (1b) wait states					 ; bank2: 32 wait states					 ; bank1: 32 wait states					 ; bank0:  1 wait states        st   0x4004[r27],r3              ; set RIFACE_WAIT_STATE					 ; Bank3 : 3 wait state        addi r0,#0x2c4,r2                ; r2  = DRAM configuration (2MB)					 ; 0x344 3MB        st   0x8100[r27],r2              ; set buscon_dram_control;        nop;        st   0x4008[r27],r0             ; RIFACE_TURNOFF_DELAY = 0        st    0x0[r5],r21		 ; If it is 0xc3, then it is 3210;					 ; Otherwise, it is 3208	addi r0,#0x0e01,r3          	 ; Set EDO	st   0x87e0[r27],r3            ;       nop;       nop        nop        beq   r0,r0,ParseCmd             ; goto ParseCmd	nop        nopLastLoc:        nop

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲男人的天堂在线aⅴ视频| 久久不见久久见免费视频1| 日韩不卡免费视频| 欧美日韩国产综合草草| 亚洲午夜影视影院在线观看| 欧美日韩国产乱码电影| 水蜜桃久久夜色精品一区的特点 | 奇米精品一区二区三区在线观看 | 亚洲.国产.中文慕字在线| 欧美影院一区二区三区| 免费高清视频精品| 久久久国产午夜精品| 国产成人午夜精品5599 | 一级中文字幕一区二区| 91精品国产福利在线观看 | 国产成人一区在线| 日韩丝袜美女视频| 成人自拍视频在线观看| 亚洲欧美韩国综合色| 欧美日韩国产另类一区| av色综合久久天堂av综合| 一区二区三区四区激情| 国产精品毛片a∨一区二区三区| 欧美色图在线观看| 91色在线porny| 懂色av一区二区三区蜜臀| 午夜av区久久| 一区二区激情视频| 国产精品三级在线观看| 日韩精品一区二区三区在线观看| aaa国产一区| av亚洲精华国产精华| 国产精一区二区三区| 视频一区在线视频| 亚洲欧美精品午睡沙发| 日韩一区在线免费观看| 中文字幕亚洲在| 亚洲国产精品高清| 国产精品福利一区| 亚洲人成伊人成综合网小说| 国产剧情一区二区| 偷拍一区二区三区| 捆绑调教美女网站视频一区| 欧美aaa在线| 国产成人啪午夜精品网站男同| 美女视频第一区二区三区免费观看网站 | 欧美日韩1234| 欧美无砖砖区免费| 欧美一区二区视频观看视频| 精品伦理精品一区| 日韩码欧中文字| 欧美aaaaaa午夜精品| 国产精品911| 4438亚洲最大| 欧美国产精品一区二区三区| 亚洲一区在线视频观看| 国内精品嫩模私拍在线| 欧美性猛片xxxx免费看久爱| 精品福利二区三区| 亚洲五码中文字幕| 国产在线日韩欧美| 欧美日韩一区小说| 综合色中文字幕| 免费在线观看视频一区| 在线观看91精品国产入口| 久久蜜桃av一区二区天堂| 午夜精品久久久久久久久| heyzo一本久久综合| 久久久天堂av| 精品在线一区二区| 日韩精品一区二区三区视频在线观看| 国产精品国产三级国产aⅴ原创| 午夜免费欧美电影| 在线观看国产日韩| 亚洲在线视频免费观看| 成人av电影免费在线播放| 26uuu另类欧美亚洲曰本| 欧美一级片在线看| 中文av字幕一区| 国产suv精品一区二区三区| 91精品福利在线一区二区三区 | 欧美激情一区二区| 国产一区福利在线| 国产免费成人在线视频| 成人免费看片app下载| 国产精品久久三| 成人v精品蜜桃久久一区| 亚洲色图都市小说| 在线观看欧美精品| 国产一区美女在线| 国产精品三级av在线播放| 成人一道本在线| 亚洲自拍另类综合| 欧美精品一卡二卡| 岛国精品在线播放| 天堂资源在线中文精品| 26uuu亚洲综合色| 在线免费观看日本一区| 日本不卡在线视频| 久久精品一区二区三区av| 成av人片一区二区| 久久se精品一区二区| 亚洲视频一二三| 久久综合久久99| 欧美日本免费一区二区三区| 蜜桃视频在线观看一区二区| 亚洲欧美自拍偷拍色图| 久久综合色播五月| 国产精品乡下勾搭老头1| 天涯成人国产亚洲精品一区av| 日韩欧美国产电影| 91在线视频官网| 国产69精品久久777的优势| 日本成人在线网站| 亚洲h精品动漫在线观看| 成人免费在线播放视频| 久久影院午夜片一区| 欧美一区二区视频网站| 亚洲日本va午夜在线影院| 成人综合激情网| 国产精品你懂的在线| 欧美精品第1页| 欧美自拍偷拍午夜视频| 亚洲国产精品久久不卡毛片| 国产一区二区三区久久悠悠色av| 成人综合在线观看| 欧美精品一二三四| 中文字幕av在线一区二区三区| 亚洲一区欧美一区| 国产在线精品不卡| 欧美日韩国产经典色站一区二区三区| 欧美电影免费观看高清完整版 | 91浏览器在线视频| 欧美一级在线免费| 亚洲视频 欧洲视频| 久久www免费人成看片高清| 91久久精品网| 国产嫩草影院久久久久| 日韩激情av在线| 91在线视频播放地址| 日韩精品影音先锋| 午夜不卡av在线| 欧美最新大片在线看| 久久精品视频免费观看| 日本在线不卡视频| 欧美三级三级三级爽爽爽| 中文字幕日韩一区二区| 国产一区二区在线观看免费| 欧美色综合天天久久综合精品| 亚洲欧美在线另类| 国产成人av自拍| 精品成人a区在线观看| 五月开心婷婷久久| 欧美一a一片一级一片| 亚洲色图20p| www.色综合.com| 欧美国产国产综合| 国产一区91精品张津瑜| 欧美不卡视频一区| 免费日韩伦理电影| 91精品欧美综合在线观看最新| 亚洲综合免费观看高清在线观看| 成人18视频日本| 国产精品区一区二区三区| 国产曰批免费观看久久久| 日韩视频永久免费| 免费人成精品欧美精品| 91精选在线观看| 日韩成人一级片| 91精品一区二区三区久久久久久 | 日韩在线a电影| 欧美三级欧美一级| 亚州成人在线电影| 欧美日韩国产一二三| 午夜日韩在线观看| 日韩美女在线视频| 国产一级精品在线| 国产精品久久久久久久久免费樱桃| 高清国产一区二区| 国产精品麻豆久久久| 一本色道久久综合亚洲91 | 欧美激情综合在线| 成人动漫在线一区| 亚洲欧美日韩久久| 欧美日韩二区三区| 免费成人小视频| 久久伊人蜜桃av一区二区| 成人污污视频在线观看| 日韩毛片精品高清免费| 欧美影院精品一区| 日本美女一区二区三区视频| 久久综合色天天久久综合图片| 国产成人精品免费视频网站| 国产精品视频观看| 欧洲激情一区二区| 黑人精品欧美一区二区蜜桃| 日本一区二区视频在线| 色婷婷久久久久swag精品| 日本va欧美va欧美va精品| 久久久777精品电影网影网 |