Files

126 lines
3.0 KiB
PHP
Raw Permalink Normal View History

2026-07-06 18:28:16 +01:00
.xlist
; Include file - OSPACK.INC
; Epoc/Os Sibo packs include file.
; Copyright (c) Psion PLC 1989-90.
;
; VER DATE BY DESCRIPTION
; ----- -------- ---- -----------
; 2.00F 30/09/90 CJ Final release
; 2.50A 24/01/93 NSM Changed to support S3B/C
;
DoorOpen equ 001h
DoorClosed equ 000h
;
; ASIC4 STRUCTURES AND REGISTER BITS
; ==================================
;
ASIC5TYPE equ 0
ASIC4TYPE equ 1
;
ASIC4R struc
A4Data db ?
A4Portb db ?
A4IncAddress db ?
A4Address db ?
A4Dum4 db ?
A4Dum5 db ?
A4Dum6 db ?
A4Control db ?
ASIC4R ends
;
A4PortbMode equ A4IncAddress
A4InfoR equ A4Portb
A4CsSetupW equ A4Portb
A4XInfo record A4MXPeriph:1,A4MXType:1,A4MXDevices:1,A4MXBlocks:1, \
A4MXCheat:1,A4MXExtra:2,A4MXLowBat:1
;
A4SpecialMode equ 2
A4NormalMode equ 0
;
A4LBO equ 080h ; Enable low battery check
SetVppOn equ 010h ; Enable VPP bit in A4CONTROL
SetVppOff equ 000h ; Disable VPP
VppOnDelay equ 5 ; i.e. 5ms.
BatteryDelay equ 1 ; 1 ms
;
; INTEL FLASH EPROM COMMANDS
; ==========================
;
ReadCmd equ 0 ; Set into read mode when VPP is on
EraseCmd equ 020h ; Start erase cycle
EraseVerifyCmd equ 0a0h ; Erase verify byte
ProgramCmd equ 040h ; Start program cycle
ProgramVerifyCmd equ 0c0h ; Program verify byte
MaxProgramPulses equ 25 ; Number of programs per byte
MaxErasePulses equ 1000 ; Number of erase cycles
EraseDelay equ 10 ; Erase program delay 10mS
;
; INTEL TYPE2 FLASH EPROM COMMANDS
; ================================
;
Type2ReadCmd equ 0FFh ; Read byte with VPP on
Type2EraseCmd equ 0D0h ; Start erase cycle
Type2EraseSetup equ 020h ; Erase verify byte
Type2ProgramCmd equ 040h ; Start program cycle
Type2ClearStatus equ 050h ; Clear status byte
Type2ReadStatus equ 070h ; Read status byte
Type2MaxProgramPulses equ 1 ; Number of programs per byte
Type2ProgramTimeout equ 150 ; 150 frames at 3.2 us is >450 us.
Type2EraseTimeout equ 321 ; 320 ticks is 10 seconds.
; Status Register Format
Type2StatusBusy equ 80h
Type2EraseSuspended equ 40h
Type2EraseSuccess equ 20h
Type2WriteSuccess equ 10h
Type2VPPFail equ 08h
;
if HandHeld
if Corporate or S3c
Max01Units equ 2
else
Max01Units equ 3
endif
else
Max01Units equ 4
endif
;
; DATA STRUCTURES
; ===============
;
InfoRec record PackType:3,NumberOfChips:2,BlocksPerChip:3
;
TypeRam equ 0
TypeIntelFlash equ 1
Type2IntelFlash equ 2
TypeUnknown equ 3
TypeRom equ 6
TypeWriteProtected equ 7
;
UnitShiftNumber equ 4 ; 2^UnitShift must equal size of UnitInfo
;
UnitInfo struc ; This must be an whole power of 2
UnitStatus db ?
UnitType db ?
UnitDevices db ?
UnitAsicType db ?
UnitChanged db ?
UnitReadCmd db ?
UnitTotalSectors dw ?
UnitMask dw ?
UnitSectorsPerDevice dw ?
UnitSpare db ?
UnitShift db ?
UnitDoReadCmd dw ?
UnitInfo ends
;
UnitBufferInBxFromBl macro
xor bh, bh
rept UnitShiftNumber
shl bx, 1
endm
add bx, offset OsDataGroup:OsUnitInfoBuffer
endm
;
.list