Protect random counter against ProDOS.

Although documented nowhere (!!!) ProDOS trashes the random counter locations $4E/$4F. Is discovered this because my TCP connections didn't have random local ports.

It's a really funny coincidence that David Finnigan discovered only 3 years ago the very same issue because of the very same reason: https://groups.google.com/forum/#!topic/comp.sys.apple2.programmer/1ciep_Oetvo
This commit is contained in:
Oliver Schmidt 2018-09-08 23:29:59 +02:00
parent cddc4da3bb
commit a9a102b0e8
1 changed files with 16 additions and 1 deletions

View File

@ -6,6 +6,7 @@
.import __dos_type
.include "apple2.inc"
.include "mli.inc"
.bss
@ -23,10 +24,24 @@ callmli:
lda __dos_type
beq oserr
; Call MLI and return
; Save random counter
lda RNDL
pha
lda RNDH
pha
; Call MLI
jsr $BF00 ; MLI call entry point
call: .byte $00
.addr mliparam
; Restore random counter and return
tax
pla
sta RNDH
pla
sta RNDL
txa
rts
; Load oserror code and return