Subversion Repositories Kolibri OS

Rev

Rev 283 | Rev 375 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 ha 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2
;;                                                            ;;
3
;;                   SYSTEM CALL ENTRY                        ;;
4
;;                                                            ;;
5
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6 poddubny 6
 
1 ha 7
align 32
8
i40:
15 poddubny 9
      push  ds es
3 halyavin 10
      pushad
40 halyavin 11
      cld
3 halyavin 12
 
13
      mov   ax,word os_data
14
      mov   ds,ax
15
      mov   es,ax
1 ha 16
 
15 poddubny 17
      ; load all registers in crossed order
314 diamond 18
        mov     eax, ebx
19
        mov     ebx, ecx
20
        mov     ecx, edx
21
        mov     edx, esi
22
        mov     esi, edi
23
        mov     edi, [esp+28]
6 poddubny 24
 
1 ha 25
      ; enable interupts  -  a task switch or an IRQ _CAN_ interrupt i40 handler
26
      sti
15 poddubny 27
      push  eax
28
      and   edi,0xff
29
      call  dword [servetable+edi*4]
30
      pop   eax
314 diamond 31
;      cli
164 serge 32
 
3 halyavin 33
      popad
15 poddubny 34
      pop   es ds
3 halyavin 35
      iretd
1 ha 36
 
37
 
38
iglobal
39
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
40
  ;; SYSTEM FUNCTIONS TABLE ;;
41
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
42
 
43
  align 4
44
  servetable:
45
 
46
      dd sys_drawwindow          ; 0-DrawWindow
47
      dd syscall_setpixel        ; 1-SetPixel
48
      dd sys_getkey              ; 2-GetKey
49
      dd sys_clock               ; 3-GetTime
50
      dd syscall_writetext       ; 4-WriteText
51
      dd delay_hs                ; 5-DelayHs
52
      dd syscall_openramdiskfile ; 6-OpenRamdiskFile
53
      dd syscall_putimage        ; 7-PutImage
54
      dd sys_button              ; 8-DefineButton
55
      dd sys_cpuusage            ; 9-GetProcessInfo
56
      dd sys_waitforevent        ; 10-WaitForEvent
57
      dd sys_getevent            ; 11-CheckForEvent
58
      dd sys_redrawstat          ; 12-BeginDraw and EndDraw
59
      dd syscall_drawrect        ; 13-DrawRect
60
      dd syscall_getscreensize   ; 14-GetScreenSize
61
      dd sys_background          ; 15-bgr
62
      dd sys_cachetodiskette     ; 16-FlushFloppyCache
63
      dd sys_getbutton           ; 17-GetButton
75 diamond 64
      dd sys_system              ; 18-System Services
147 diamond 65
      dd undefined_syscall       ; 19-reserved
1 ha 66
      dd sys_midi                ; 20-ResetMidi and OutputMidi
67
      dd sys_setup               ; 21-SetMidiBase,SetKeymap,SetShiftKeymap,.
68
      dd sys_settime             ; 22-setting date,time,clock and alarm-clock
69
      dd sys_wait_event_timeout  ; 23-TimeOutWaitForEvent
70
      dd syscall_cdaudio         ; 24-PlayCdTrack,StopCd and GetCdPlaylist
71
      dd sys_sb16                ; 25-SetSb16
72
      dd sys_getsetup            ; 26-GetMidiBase,GetKeymap,GetShiftKeymap,.
277 diamond 73
      dd undefined_syscall       ; 27-reserved
1 ha 74
      dd sys_sb16II              ; 28-SetSb16
75
      dd sys_date                ; 29-GetDate
75 diamond 76
      dd undefined_syscall       ; 30-reserved
77
      dd undefined_syscall       ; 31-reserved
1 ha 78
      dd syscall_delramdiskfile  ; 32-DelRamdiskFile
79
      dd syscall_writeramdiskfile; 33-WriteRamdiskFile
75 diamond 80
      dd undefined_syscall       ; 34-reserved
1 ha 81
      dd syscall_getpixel        ; 35-GetPixel
82
      dd syscall_readstring      ; 36-ReadString (not yet ready)
83
      dd readmousepos            ; 37-GetMousePosition_ScreenRelative,.
84
      dd syscall_drawline        ; 38-DrawLine
85
      dd sys_getbackground       ; 39-GetBackgroundSize,ReadBgrData,.
86
      dd set_app_param           ; 40-WantEvents
87
      dd syscall_getirqowner     ; 41-GetIrqOwner
88
      dd get_irq_data            ; 42-ReadIrqData
89
      dd sys_outport             ; 43-SendDeviceData
90
      dd sys_programirq          ; 44-ProgramIrqs
91
      dd reserve_free_irq        ; 45-ReserveIrq and FreeIrq
92
      dd syscall_reserveportarea ; 46-ReservePortArea and FreePortArea
93
      dd display_number          ; 47-WriteNum
94
      dd display_settings        ; 48-SetRedrawType and SetButtonType
76 mario79 95
      dd sys_apm                 ; 49-Advanced Power Management (APM)
1 ha 96
      dd random_shaped_window    ; 50-Window shape & scale
97
      dd syscall_threads         ; 51-Threads
98
      dd stack_driver_stat       ; 52-Stack driver status
99
      dd socket                  ; 53-Socket interface
100
      dd user_events             ; 54-User events
101
      dd sound_interface         ; 55-Sound interface
202 diamond 102
      dd undefined_syscall       ; 56-reserved
75 diamond 103
      dd undefined_syscall       ; 57-reserved
1 ha 104
      dd file_system             ; 58-Common file system interface
314 diamond 105
      dd undefined_syscall       ; 59-reserved
164 serge 106
      dd sys_IPC                 ; 60-Inter Process Communication
1 ha 107
      dd sys_gs                  ; 61-Direct graphics access
108
      dd sys_pci                 ; 62-PCI functions
109
      dd sys_msg_board           ; 63-System message board
110
      dd sys_resize_app_memory   ; 64-Resize application memory usage
283 diamond 111
      dd syscall_putimage_palette; 65-PutImagePalette
1 ha 112
      dd sys_process_def         ; 66-Process definitions - keyboard
113
      dd sys_window_move         ; 67-Window move or resize
164 serge 114
      dd new_services            ; 68-Some internal services
40 halyavin 115
      dd sys_debug_services      ; 69-Debug
72 diamond 116
      dd file_system_lfn         ; 70-Common file system interface, version 2
114 mikedld 117
      dd syscall_windowsettings  ; 71-Window settings
1 ha 118
 
119
  times 255 - ( ($-servetable) /4 )  dd undefined_syscall
120
 
121
      dd sys_end                 ; -1-end application
122
endg