There is an ongoing DDoS attack causing intermittent 502 errors. We've added mitigations to block the DDoS and keep the wiki online.
Please consider supporting us on Patreon.
Please consider supporting us on Patreon.
Arkanoid II: Revenge of DOH (Amstrad CPC)
Jump to navigation
Jump to search
Cleanup > Pages missing date references
Cleanup > Pages missing developer references
Cleanup > Pages missing publisher references
Games > Games by content > Games with hidden developer messages
Games > Games by content > Games with uncompiled source code
Games > Games by developer > Games developed by Bandai Namco > Games developed by Ocean
Games > Games by platform > Amstrad CPC games
Games > Games by publisher > Games published by Bandai Namco > Games published by Ocean > Games published by Imagine > Games published by Imagine Software
Games > Games by release date > Games released in 1988
Games > Games by series > Arkanoid series
Arkanoid II: Revenge of DOH |
---|
Developer: Ocean
|
Source Code Fragments
A good chunk of code can be seen, scattered through the game. These can be seen with a hex editor at the hex addresses listed below in the .dsk dump. Note that these code fragments are repeated multiple times and some instances are more complete than others.
3D00:
org &ae00,&4000 nolist limit &ffff ld hl,(&be7d) ld a,(hl) ;current drive ld (drive+1),a ld c,&ff ld hl,start call &bd16 .start call &bccb .drive ld a,0 ld hl,(&be7d) ld (hl),a ld a,0 call &bc0e ld bc,&000 call &bc38 ld hl,colour_palette ld b,16 xor a .do_colours push bc push af ld c,(hl) inc hl ld b,c push hl call &bc32 pop hl pop af pop bc inc a djnz do_colours call load_block call exec_it ld hl,&4000 ld de,&c000 ld bc,&4000 ldir call load_block call load_block di jp &3089 .load_block ld hl,end_filename-1 inc (hl) ld b,end_filename-filename ld hl,filename ld de,&c000 call &bc77 ex de,hl call &bc83 push hl call &bc7a pop hl ret .exec_it jp (hl) .execution_address defw 0 .colour_palette defb 0,&d,&1a,&15,&19,&9,&18,&0a,&14,&1,&2,&b,&10,&f,&3,&6 .filename defb "ARKANOID.BI0" .end_filename
4091:
.routine_address equ &35fc org routine_address nolist write"arkanoid.lod" let mode=1 ;screen mode .load_address equ &4000;address to put file .km_initialise equ &bb00 .txt_output equ &bb5a .cas_in_open equ &bc77 .cas_in_direct equ &bc83 .cas_in_close equ &bc7a .cas_in_abandon equ &bc7d .kl_init_back equ &bcce .kl_l_rom_disable equ &b909 ;; ** STORE DATA USED BY PROGRAM THAT WILL BE CORRUPTED BY INITIALISATION OF ** ;; ** FIRMWARE ** di ld (stack+1),sp ;save stack used by program ld sp,&c000 ;new stack used by firmware and load routines ;; ** SAVE DATA OVERWRITTEN BY FIRMWARE ** ;; !!EXAMPLE!! ld hl,&a800 ld de,&c100 ld bc,&c000-&a800 ldir ld hl,&0000 ld bc,&0040 ldir ;;ld hl,&a800 ;;ld de,&c000 ;upper firmware area (&a800?-&c000) ;;ld a,4 ;;.next push af
4E00:
;;push de ;;ld bc,&600 ;;ldir ;;pop de ;;ld a,d ;;add a,8 ;;ld d,a ;;pop af ;;dec a ;;jr nz,next ;;ld h,&00 ;firmware lower jumpblock (&0000-&0040) ;;ld l,0 ;;ld c,&40 ;;ldir ld hl,here ld de,&c000 ld bc,end-here push de ldir ret ;; ** INITIALISE ALTERNATE REGISTER SET FOR FIRMWARE ** .here exx ld bc,&7f00+%10001000+mode ;initialise lower rom and select mode out (c),c ;this routine must be located above &4000 exx ex af,af' xor a ex af,af' ;; ** INITIALISE FIRMWARE ** call &0044 ;initialise lower jumpblock (&0000-&0040) ;and high kernal jumpblock (&b800-&bae4) call &08bd ;initialise firmware jumpblock entries ;(&bb00- ...) call km_initialise ;initialise keyboard manager call kl_l_rom_disable ;disable lower rom ;; ** INITIALISE DISK ROM FOR LOADING/SAVING ** ld c,7 ;disk rom ld de,&0040 ;lowest useable byte of memory ld hl,&b0ff ;highest useable byte of memory call kl_init_back ;initialise disk rom xor a ;select drive (A) ld (&ac00),a ld a,&ff ld (&be78),a ;turn of disc error messages ld a,&c9 ld (txt_output),a ;prevent printing of text characters ;don't get error messages corrupting screen ;; ** LOAD FILE USING FIRMWARE ** ld b,end_filename-filename ;length of filename ld hl,filename ;address of filename in memory ld de,load_address ;address to put file/2k buffer to use (unused since ;read direct used call cas_in_open ;open file ld hl,load_address ;HL = load address, BC = length of file call cas_in_direct ;read it call cas_in_close ;close it ;; ** RESTORE DATA WHICH WOULD HAVE BEEN OVERWRITTEN BY FIRMWARE ** ;; !!EXAMPLE!! di ld hl,&c100 ld de,&a800 ld bc,&c000-&a800 ldir ld de,&0000 ld bc,&0040 ldir ;;ld hl,&c000 ;copy back data ;;ld de,&a800 ;;ld a,4 ;;.next2 push af ;;push hl ;;ld bc,&0600 ;;ldir ;;pop hl ;;ld a,h ;;add a,8 ;;ld h,a ;;pop af ;;dec a ;;jr nz,next2 ;;ld d,&00 ;copy back &0000-&0040 ;;ld e,0 ;;ld c,&40 ;;ldir .stack ld sp,0 ;old stack back and... ret ;...exit to program!! .filename defb "ARKANOID.LV0" .end_filename .end
Developer Message
A small message can be found at A005 in the .dsk dump:
HELLO HACKERS STOP PEEKING (SORRY) AT MY (RUSHED) CODE. THERE IS A CHEAT MODE IF YOU CAN FIND IT ????
The Arkanoid series
| |
---|---|
Arcade | Arkanoid • Arkanoid: Revenge of DOH • Arkanoid Returns |
NES | Arkanoid • Arkanoid II |
Amiga | Arkanoid |
Atari ST | Arkanoid II: Revenge of DOH |
Amstrad CPC | Arkanoid II: Revenge of DOH |
DOS | Arkanoid (1988) • Arkanoid II: Revenge of DOH |
SNES | Arkanoid: Doh It Again |
Cleanup > Pages missing date references
Cleanup > Pages missing developer references
Cleanup > Pages missing publisher references
Games > Games by content > Games with hidden developer messages
Games > Games by content > Games with uncompiled source code
Games > Games by developer > Games developed by Bandai Namco > Games developed by Ocean
Games > Games by platform > Amstrad CPC games
Games > Games by publisher > Games published by Bandai Namco > Games published by Ocean > Games published by Imagine > Games published by Imagine Software
Games > Games by release date > Games released in 1988
Games > Games by series > Arkanoid series