⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myap.asm

📁 dvd player data system for programming
💻 ASM
字号:
;*******************************************************************************
;* s1 mp3 player ap replacement for testing purposes
;* author: wiRe@s1mp3.de (www.s1mp3.de)
;* compiler: z80asm (http://savannah.nongnu.org/projects/z80asm)
;*******************************************************************************


;-------------------------------------------------------------------------------
; definitions
;-------------------------------------------------------------------------------
HEADER_LENGTH:    equ 0x0800
CODE_ADDRESS:     equ 0x0800
FILE_LENGTH:      equ 13312               ; the filesize of the ap u want to replace


;-------------------------------------------------------------------------------
; ap header
;-------------------------------------------------------------------------------
                  org   0x0000
header:           dw    0x0050            ; header id
		              dw    0x4757            ;
		              dw    0x9719            ;
		              dw    0x0003            ;
                  dw    HEADER_LENGTH     ; text fileoffset (lo)
                  dw    0                 ; text fileoffset (hi)
                  dw    CODE_LENGTH       ; text length
                  dw    CODE_ADDRESS      ; text address
                  dw    0                 ; data fileoffset (lo)
                  dw    0                 ; data fileoffset (hi)
                  dw    0                 ; data length
                  dw    0                 ; data address
                  dw    0                 ; bss length
		              dw    0                 ; bss address
                  dw    entrypoint        ; entry point
                  db    0                 ; entry bank
                  db    0                 ; number of banks
                  ds    HEADER_LENGTH - $


;-------------------------------------------------------------------------------
; code segment
;-------------------------------------------------------------------------------
                  org   CODE_ADDRESS


entrypoint:       push	bc
              		push	de

		              ld	  de, 0
              		call	ClearScreen

                  ld    e, FONT_TYPE_LARGE
                  call  SetAsciiFont

                  ld    e, 0+((128-4*6*3)/4)
                  ld    c, 0
                  call  SetTextPos

                  ld    de, textstr
                  ld    c, 0xff
                  call  PutS

		              ld	  de, 0
              		call	UpdateScreen

msgloop:          in	  a, (4Eh)          ; set watchdog timer
              		set	  3, a
              		out	  (4Eh), a

              		ld	  a, 0x11           ; call API_MSG_GetSysMsg
              		rst   RSTFastAPI

                  jp    msgloop           ; infinite loop

textstr:          db    'wiRe was here!', 0

;-------------------------------------------------------------------------------
; api functions and definitions
;-------------------------------------------------------------------------------
RSTFastAPI:       equ   0x08
RSTBankAPI:       equ   0x10
RSTDisplayAPI:    equ   0x20

API_PutChar:      equ   0x00
API_PutS:         equ   0x01
API_PutImage:     equ   0x02
API_GetFontPoint: equ   0x03
API_SetAsciiFont: equ   0x05
API_SetTextPos:   equ   0x06
API_GetTextPos:   equ   0x07
API_UpdateScreen: equ   0x10
;BANKA
API_UI_BaseNoA:   equ   0x00a0
API_ClearScreen:  equ   0x0000 + API_UI_BaseNoA
API_PutSDImage:   equ   0x0001 + API_UI_BaseNoA
API_InvertRegion: equ   0x0002 + API_UI_BaseNoA
API_SetContrast:  equ   0x0003 + API_UI_BaseNoA
API_HoriScroll:   equ   0x0004 + API_UI_BaseNoA
API_StandbyScreen:equ   0x0005 + API_UI_BaseNoA
API_MsgBox:       equ   0x000f + API_UI_BaseNoA
;BANKB
API_UI_BaseNoB:   equ   0x10a0
API_ShowLogo:     equ   0x0001 + API_UI_BaseNoB

FONT_TYPE_TINY:         equ 0xff
FONT_TYPE_TINY_INVERT:  equ 0xff
FONT_TYPE_SMALL:        equ 0
FONT_TYPE_SMALL_INVERT: equ 1
FONT_TYPE_LARGE:        equ 4
FONT_TYPE_LARGE_INVERT: equ 0xff
FONT_TYPE_DEFAULT:      equ FONT_TYPE_SMALL

;Display API
UpdateScreen:     ld    a, API_UpdateScreen
                  jp    RSTDisplayAPI
SetTextPos:       ld    a, API_SetTextPos
                  jp    RSTDisplayAPI
GetTextPos:       ld    a, API_GetTextPos
                  jp    RSTDisplayAPI
SetAsciiFont:     ld    a, API_SetAsciiFont
                  jp    RSTDisplayAPI
PutChar:          ld    a, API_PutChar
                  jp    RSTDisplayAPI
PutS:             ld    a, API_PutS
                  jp    RSTDisplayAPI
PutImage:         ld    a, API_PutImage
                  jp    RSTDisplayAPI
PutSDImage:       ld    hl, API_PutSDImage
                  jp    RSTDisplayAPI
GetFontPoint:     ld    a, API_GetFontPoint
                  jp    RSTDisplayAPI
;Bank API
StandbyScreen:    ld    hl, API_StandbyScreen
                  jp    RSTBankAPI
ClearScreen:      ld    hl, API_ClearScreen
                  jp    RSTBankAPI
HoriScroll:       ld    hl, API_HoriScroll
                  jp    RSTBankAPI
MsgBox:           ld    hl, API_MsgBox
                  jp    RSTBankAPI
ShowLogo:         ld    hl, API_ShowLogo
                  jp    RSTBankAPI
SetContrast:      ld    hl, API_SetContrast
                  jp    RSTBankAPI
InvertRegion:     ld    hl, API_InvertRegion
                  jp    RSTBankAPI


;-------------------------------------------------------------------------------
; end of file
;-------------------------------------------------------------------------------
CODE_LENGTH:      equ   $ - CODE_ADDRESS
FILE_OFFSET:      equ   HEADER_LENGTH + CODE_LENGTH
                  if    FILE_LENGTH > FILE_OFFSET
                    ds    FILE_LENGTH - FILE_OFFSET
                  endif
                  end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -