If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
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 This game has uncompiled source code. |
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